You've already forked focalboard
mirror of
https://github.com/mattermost/focalboard.git
synced 2025-09-16 08:56:19 +02:00
Simplifying the categories migration (#2739)
* Simplifying the categories migration * A bit more of simplification * Leaving the channel_id there because sqlite doesn't support drop columns * Update server/services/store/sqlstore/migrations/000018_populate_categories.up.sql * Update server/services/store/sqlstore/migrations/000019_populate_category_blocks.up.sql * Update server/services/store/sqlstore/migrations/000018_populate_categories.up.sql Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
This commit is contained in:
@@ -1,13 +1,9 @@
|
|||||||
CREATE TABLE {{.prefix}}categories (
|
CREATE TABLE {{.prefix}}categories (
|
||||||
{{if .mysql}}id INT NOT NULL UNIQUE AUTO_INCREMENT,{{end}}
|
id varchar(36) NOT NULL,
|
||||||
{{if .postgres}}id SERIAL,{{end}}
|
|
||||||
{{if .sqlite}}id varchar(36),{{end}}
|
|
||||||
name varchar(100) NOT NULL,
|
name varchar(100) NOT NULL,
|
||||||
user_id varchar(32) NOT NULL,
|
user_id varchar(32) NOT NULL,
|
||||||
team_id varchar(32) NOT NULL,
|
team_id varchar(32) NOT NULL,
|
||||||
{{if not .sqlite}}
|
channel_id varchar(32),
|
||||||
channel_id varchar(32) NOT NULL,
|
|
||||||
{{end}}
|
|
||||||
create_at BIGINT,
|
create_at BIGINT,
|
||||||
update_at BIGINT,
|
update_at BIGINT,
|
||||||
delete_at BIGINT,
|
delete_at BIGINT,
|
||||||
@@ -16,22 +12,28 @@ CREATE TABLE {{.prefix}}categories (
|
|||||||
|
|
||||||
{{if .plugin}}
|
{{if .plugin}}
|
||||||
INSERT INTO {{.prefix}}categories(
|
INSERT INTO {{.prefix}}categories(
|
||||||
|
id,
|
||||||
name,
|
name,
|
||||||
user_id,
|
user_id,
|
||||||
team_id,
|
team_id,
|
||||||
{{if not .sqlite}}channel_id,{{end}}
|
channel_id,
|
||||||
create_at,
|
create_at,
|
||||||
update_at,
|
update_at,
|
||||||
delete_at
|
delete_at
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
|
{{ if .postgres }}
|
||||||
|
REPLACE(uuid_in(md5(random()::text || clock_timestamp()::text)::cstring)::varchar, '-', ''),
|
||||||
|
{{ end }}
|
||||||
|
{{ if .mysql }}
|
||||||
|
REPLACE(UUID(), '-', ''),
|
||||||
|
{{ end }}
|
||||||
COALESCE(nullif(c.DisplayName, ''), 'Direct Message') as category_name,
|
COALESCE(nullif(c.DisplayName, ''), 'Direct Message') as category_name,
|
||||||
cm.UserId,
|
cm.UserId,
|
||||||
COALESCE(nullif(c.TeamId, ''), 'direct_message') as team_id,
|
COALESCE(nullif(c.TeamId, ''), 'direct_message') as team_id,
|
||||||
{{if not .sqlite}}cm.ChannelId,{{end}}
|
cm.ChannelId,
|
||||||
{{if .postgres}}(extract(epoch from now())*1000)::bigint,{{end}}
|
{{if .postgres}}(extract(epoch from now())*1000)::bigint,{{end}}
|
||||||
{{if .mysql}}UNIX_TIMESTAMP() * 1000,{{end}}
|
{{if .mysql}}UNIX_TIMESTAMP() * 1000,{{end}}
|
||||||
{{if .sqlite}}CAST(strftime('%s', 'now') * 1000 as bigint),{{end}}
|
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
FROM
|
FROM
|
||||||
@@ -39,13 +41,4 @@ CREATE TABLE {{.prefix}}categories (
|
|||||||
JOIN ChannelMembers cm on boards.channel_id = cm.ChannelId
|
JOIN ChannelMembers cm on boards.channel_id = cm.ChannelId
|
||||||
JOIN Channels c on cm.ChannelId = c.id
|
JOIN Channels c on cm.ChannelId = c.id
|
||||||
GROUP BY cm.UserId, c.TeamId, cm.ChannelId, c.DisplayName;
|
GROUP BY cm.UserId, c.TeamId, cm.ChannelId, c.DisplayName;
|
||||||
|
|
||||||
{{if .mysql}}
|
|
||||||
ALTER TABLE {{.prefix}}categories MODIFY id varchar(36);
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .postgres}}
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id TYPE varchar(36);
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id DROP DEFAULT;
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
CREATE TABLE {{.prefix}}category_blocks (
|
CREATE TABLE {{.prefix}}category_blocks (
|
||||||
{{if .mysql}}id INT AUTO_INCREMENT,{{end}}
|
id varchar(36) NOT NULL,
|
||||||
{{if .postgres}}id SERIAL,{{end}}
|
|
||||||
{{if .sqlite}}id varchar(36),{{end}}
|
|
||||||
user_id varchar(32) NOT NULL,
|
user_id varchar(32) NOT NULL,
|
||||||
category_id varchar(36) NOT NULL,
|
category_id varchar(36) NOT NULL,
|
||||||
block_id VARCHAR(36) NOT NULL,
|
block_id VARCHAR(36) NOT NULL,
|
||||||
@@ -12,30 +10,23 @@ CREATE TABLE {{.prefix}}category_blocks (
|
|||||||
) {{if .mysql}}DEFAULT CHARACTER SET utf8mb4{{end}};
|
) {{if .mysql}}DEFAULT CHARACTER SET utf8mb4{{end}};
|
||||||
|
|
||||||
{{if .plugin}}
|
{{if .plugin}}
|
||||||
INSERT INTO {{.prefix}}category_blocks(user_id, category_id, block_id, create_at, update_at, delete_at)
|
INSERT INTO {{.prefix}}category_blocks(id, user_id, category_id, block_id, create_at, update_at, delete_at)
|
||||||
SELECT
|
SELECT
|
||||||
|
{{ if .postgres }}
|
||||||
|
REPLACE(uuid_in(md5(random()::text || clock_timestamp()::text)::cstring)::varchar, '-', ''),
|
||||||
|
{{ end }}
|
||||||
|
{{ if .mysql }}
|
||||||
|
REPLACE(UUID(), '-', ''),
|
||||||
|
{{ end }}
|
||||||
{{.prefix}}categories.user_id,
|
{{.prefix}}categories.user_id,
|
||||||
{{.prefix}}categories.id,
|
{{.prefix}}categories.id,
|
||||||
{{.prefix}}boards.id,
|
{{.prefix}}boards.id,
|
||||||
{{if .postgres}}(extract(epoch from now())*1000)::bigint,{{end}}
|
{{if .postgres}}(extract(epoch from now())*1000)::bigint,{{end}}
|
||||||
{{if .mysql}}UNIX_TIMESTAMP() * 1000,{{end}}
|
{{if .mysql}}UNIX_TIMESTAMP() * 1000,{{end}}
|
||||||
{{if .sqlite}}CAST(strftime('%s', 'now') * 1000 as bigint),{{end}}
|
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
FROM
|
FROM
|
||||||
{{.prefix}}categories
|
{{.prefix}}categories
|
||||||
JOIN {{.prefix}}boards ON {{.prefix}}categories.channel_id = {{.prefix}}boards.channel_id
|
JOIN {{.prefix}}boards ON {{.prefix}}categories.channel_id = {{.prefix}}boards.channel_id
|
||||||
AND {{.prefix}}boards.is_template = false
|
AND {{.prefix}}boards.is_template = false;
|
||||||
;
|
|
||||||
|
|
||||||
ALTER TABLE {{.prefix}}categories DROP COLUMN channel_id;
|
|
||||||
|
|
||||||
{{if .mysql}}
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks MODIFY id varchar(36);
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .postgres}}
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id TYPE varchar(36);
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id DROP DEFAULT;
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
{{end}}
|
||||||
|
@@ -1,18 +0,0 @@
|
|||||||
{{if .sqlite}}
|
|
||||||
ALTER TABLE {{.prefix}}categories DROP COLUMN channel_id VARCHAR(36);
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .mysql}}
|
|
||||||
ALTER TABLE {{.prefix}}categories MODIFY COLUMN channel_id VARCHAR(36) NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}categories MODIFY COLUMN id INT NOT NULL UNIQUE AUTO_INCREMENT;
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks MODIFY COLUMN id INT NOT NULL UNIQUE AUTO_INCREMENT;
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .postgres}}
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id DROP NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id TYPE SERIAL;
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id DROP NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id TYPE SERIAL;
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN channel_id TYPE VARCHAR(32);
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN channel_id SET NOT NULL;
|
|
||||||
{{end}}
|
|
@@ -1,18 +0,0 @@
|
|||||||
{{if .sqlite}}
|
|
||||||
ALTER TABLE {{.prefix}}categories ADD COLUMN channel_id VARCHAR(36);
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .mysql}}
|
|
||||||
ALTER TABLE {{.prefix}}categories MODIFY COLUMN id VARCHAR(36) NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks MODIFY COLUMN id VARCHAR(36) NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}categories MODIFY COLUMN channel_id VARCHAR(36);
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{if .postgres}}
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id TYPE VARCHAR(36);
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN id SET NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id TYPE VARCHAR(36);
|
|
||||||
ALTER TABLE {{.prefix}}category_blocks ALTER COLUMN id SET NOT NULL;
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN channel_id TYPE VARCHAR(36);
|
|
||||||
ALTER TABLE {{.prefix}}categories ALTER COLUMN channel_id DROP NOT NULL;
|
|
||||||
{{end}}
|
|
Reference in New Issue
Block a user