diff --git a/store/db/mysql/migration/prod/0.19/00__add_resource_name.sql b/store/db/mysql/migration/prod/0.19/00__add_resource_name.sql new file mode 100644 index 00000000..b956d0d8 --- /dev/null +++ b/store/db/mysql/migration/prod/0.19/00__add_resource_name.sql @@ -0,0 +1,11 @@ +ALTER TABLE `memo` ADD COLUMN `resource_name` VARCHAR(256) NOT NULL AFTER `id`; + +UPDATE `memo` SET `resource_name` = uuid(); + +CREATE UNIQUE INDEX idx_memo_resource_name ON `memo` (`resource_name`); + +ALTER TABLE `resource` ADD COLUMN `resource_name` VARCHAR(256) NOT NULL AFTER `id`; + +UPDATE `resource` SET `resource_name` = uuid(); + +CREATE UNIQUE INDEX idx_resource_resource_name ON `resource` (`resource_name`); diff --git a/store/db/mysql/migration/prod/LATEST__SCHEMA.sql b/store/db/mysql/migration/prod/LATEST__SCHEMA.sql index 2ff4b65e..7db3fe57 100644 --- a/store/db/mysql/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/mysql/migration/prod/LATEST__SCHEMA.sql @@ -36,6 +36,7 @@ CREATE TABLE `user_setting` ( -- memo CREATE TABLE `memo` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + `resource_name` VARCHAR(256) NOT NULL UNIQUE, `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -63,6 +64,7 @@ CREATE TABLE `memo_relation` ( -- resource CREATE TABLE `resource` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + `resource_name` VARCHAR(256) NOT NULL UNIQUE, `creator_id` INT NOT NULL, `created_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, diff --git a/store/db/postgres/migration/prod/0.19/00__add_resource_name.sql b/store/db/postgres/migration/prod/0.19/00__add_resource_name.sql new file mode 100644 index 00000000..aa5b560f --- /dev/null +++ b/store/db/postgres/migration/prod/0.19/00__add_resource_name.sql @@ -0,0 +1,15 @@ +ALTER TABLE memo ADD COLUMN resource_name TEXT; + +UPDATE memo SET resource_name = uuid_in(md5(random()::text || random()::text)::cstring); + +ALTER TABLE memo ALTER COLUMN resource_name SET NOT NULL; + +CREATE UNIQUE INDEX idx_memo_resource_name ON memo (resource_name); + +ALTER TABLE resource ADD COLUMN resource_name TEXT; + +UPDATE resource SET resource_name = uuid_in(md5(random()::text || random()::text)::cstring); + +ALTER TABLE resource ALTER COLUMN resource_name SET NOT NULL; + +CREATE UNIQUE INDEX idx_resource_resource_name ON resource (resource_name); diff --git a/store/db/postgres/migration/prod/LATEST__SCHEMA.sql b/store/db/postgres/migration/prod/LATEST__SCHEMA.sql index 8c414fd1..c0059ab3 100644 --- a/store/db/postgres/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/postgres/migration/prod/LATEST__SCHEMA.sql @@ -36,6 +36,7 @@ CREATE TABLE user_setting ( -- memo CREATE TABLE memo ( id SERIAL PRIMARY KEY, + resource_name TEXT NOT NULL UNIQUE, creator_id INTEGER NOT NULL, created_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()), updated_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()), @@ -63,6 +64,7 @@ CREATE TABLE memo_relation ( -- resource CREATE TABLE resource ( id SERIAL PRIMARY KEY, + resource_name TEXT NOT NULL UNIQUE, creator_id INTEGER NOT NULL, created_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()), updated_ts BIGINT NOT NULL DEFAULT EXTRACT(EPOCH FROM NOW()), diff --git a/store/db/sqlite/migration/prod/0.19/00__add_resource_name.sql b/store/db/sqlite/migration/prod/0.19/00__add_resource_name.sql new file mode 100644 index 00000000..8f774786 --- /dev/null +++ b/store/db/sqlite/migration/prod/0.19/00__add_resource_name.sql @@ -0,0 +1,11 @@ +ALTER TABLE memo ADD COLUMN resource_name TEXT NOT NULL; + +UPDATE memo SET resource_name = lower(hex(randomblob(8))); + +CREATE UNIQUE INDEX idx_memo_resource_name ON memo (resource_name); + +ALTER TABLE resource ADD COLUMN resource_name TEXT NOT NULL; + +UPDATE resource SET resource_name = lower(hex(randomblob(8))); + +CREATE UNIQUE INDEX idx_resource_resource_name ON resource (resource_name); diff --git a/store/db/sqlite/migration/prod/LATEST__SCHEMA.sql b/store/db/sqlite/migration/prod/LATEST__SCHEMA.sql index b5fb32f5..5ddce546 100644 --- a/store/db/sqlite/migration/prod/LATEST__SCHEMA.sql +++ b/store/db/sqlite/migration/prod/LATEST__SCHEMA.sql @@ -1,19 +1,3 @@ --- drop all tables first -DROP TABLE IF EXISTS migration_history; -DROP TABLE IF EXISTS system_setting; -DROP TABLE IF EXISTS user; -DROP TABLE IF EXISTS user_setting; -DROP TABLE IF EXISTS memo; -DROP TABLE IF EXISTS memo_organizer; -DROP TABLE IF EXISTS memo_relation; -DROP TABLE IF EXISTS resource; -DROP TABLE IF EXISTS tag; -DROP TABLE IF EXISTS activity; -DROP TABLE IF EXISTS storage; -DROP TABLE IF EXISTS idp; -DROP TABLE IF EXISTS inbox; -DROP TABLE IF EXISTS webhook; - -- migration_history CREATE TABLE migration_history ( version TEXT NOT NULL PRIMARY KEY, @@ -55,6 +39,7 @@ CREATE TABLE user_setting ( -- memo CREATE TABLE memo ( id INTEGER PRIMARY KEY AUTOINCREMENT, + resource_name TEXT NOT NULL UNIQUE, creator_id INTEGER NOT NULL, created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), @@ -86,6 +71,7 @@ CREATE TABLE memo_relation ( -- resource CREATE TABLE resource ( id INTEGER PRIMARY KEY AUTOINCREMENT, + resource_name TEXT NOT NULL UNIQUE, creator_id INTEGER NOT NULL, created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')), updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),