diff --git a/migrations/mysql/2020-08-02-025025_add_favorites_table/down.sql b/migrations/mysql/2020-08-02-025025_add_favorites_table/down.sql index 9b79b63..25eb713 100644 --- a/migrations/mysql/2020-08-02-025025_add_favorites_table/down.sql +++ b/migrations/mysql/2020-08-02-025025_add_favorites_table/down.sql @@ -1,4 +1,13 @@ -DROP TABLE favorites; - ALTER TABLE ciphers -ADD COLUMN favorite BOOLEAN NOT NULL; +ADD COLUMN favorite BOOLEAN NOT NULL DEFAULT FALSE; + +-- Transfer favorite status for user-owned ciphers. +UPDATE ciphers +SET favorite = TRUE +WHERE EXISTS ( + SELECT * FROM favorites + WHERE favorites.user_uuid = ciphers.user_uuid + AND favorites.cipher_uuid = ciphers.uuid +); + +DROP TABLE favorites; diff --git a/migrations/mysql/2020-08-02-025025_add_favorites_table/up.sql b/migrations/mysql/2020-08-02-025025_add_favorites_table/up.sql index 904c15e..ebff7e3 100644 --- a/migrations/mysql/2020-08-02-025025_add_favorites_table/up.sql +++ b/migrations/mysql/2020-08-02-025025_add_favorites_table/up.sql @@ -5,5 +5,12 @@ CREATE TABLE favorites ( PRIMARY KEY (user_uuid, cipher_uuid) ); +-- Transfer favorite status for user-owned ciphers. +INSERT INTO favorites(user_uuid, cipher_uuid) +SELECT user_uuid, uuid +FROM ciphers +WHERE favorite = TRUE + AND user_uuid IS NOT NULL; + ALTER TABLE ciphers DROP COLUMN favorite; diff --git a/migrations/postgresql/2020-08-02-025025_add_favorites_table/down.sql b/migrations/postgresql/2020-08-02-025025_add_favorites_table/down.sql index 9b79b63..25eb713 100644 --- a/migrations/postgresql/2020-08-02-025025_add_favorites_table/down.sql +++ b/migrations/postgresql/2020-08-02-025025_add_favorites_table/down.sql @@ -1,4 +1,13 @@ -DROP TABLE favorites; - ALTER TABLE ciphers -ADD COLUMN favorite BOOLEAN NOT NULL; +ADD COLUMN favorite BOOLEAN NOT NULL DEFAULT FALSE; + +-- Transfer favorite status for user-owned ciphers. +UPDATE ciphers +SET favorite = TRUE +WHERE EXISTS ( + SELECT * FROM favorites + WHERE favorites.user_uuid = ciphers.user_uuid + AND favorites.cipher_uuid = ciphers.uuid +); + +DROP TABLE favorites; diff --git a/migrations/postgresql/2020-08-02-025025_add_favorites_table/up.sql b/migrations/postgresql/2020-08-02-025025_add_favorites_table/up.sql index 925eb2b..9a8787f 100644 --- a/migrations/postgresql/2020-08-02-025025_add_favorites_table/up.sql +++ b/migrations/postgresql/2020-08-02-025025_add_favorites_table/up.sql @@ -5,5 +5,12 @@ CREATE TABLE favorites ( PRIMARY KEY (user_uuid, cipher_uuid) ); +-- Transfer favorite status for user-owned ciphers. +INSERT INTO favorites(user_uuid, cipher_uuid) +SELECT user_uuid, uuid +FROM ciphers +WHERE favorite = TRUE + AND user_uuid IS NOT NULL; + ALTER TABLE ciphers DROP COLUMN favorite; diff --git a/migrations/sqlite/2020-08-02-025025_add_favorites_table/down.sql b/migrations/sqlite/2020-08-02-025025_add_favorites_table/down.sql index 9b79b63..6920b5f 100644 --- a/migrations/sqlite/2020-08-02-025025_add_favorites_table/down.sql +++ b/migrations/sqlite/2020-08-02-025025_add_favorites_table/down.sql @@ -1,4 +1,13 @@ -DROP TABLE favorites; - ALTER TABLE ciphers -ADD COLUMN favorite BOOLEAN NOT NULL; +ADD COLUMN favorite BOOLEAN NOT NULL DEFAULT 0; -- FALSE + +-- Transfer favorite status for user-owned ciphers. +UPDATE ciphers +SET favorite = 1 +WHERE EXISTS ( + SELECT * FROM favorites + WHERE favorites.user_uuid = ciphers.user_uuid + AND favorites.cipher_uuid = ciphers.uuid +); + +DROP TABLE favorites; diff --git a/migrations/sqlite/2020-08-02-025025_add_favorites_table/up.sql b/migrations/sqlite/2020-08-02-025025_add_favorites_table/up.sql index c00a790..4854114 100644 --- a/migrations/sqlite/2020-08-02-025025_add_favorites_table/up.sql +++ b/migrations/sqlite/2020-08-02-025025_add_favorites_table/up.sql @@ -5,6 +5,13 @@ CREATE TABLE favorites ( PRIMARY KEY (user_uuid, cipher_uuid) ); +-- Transfer favorite status for user-owned ciphers. +INSERT INTO favorites(user_uuid, cipher_uuid) +SELECT user_uuid, uuid +FROM ciphers +WHERE favorite = 1 + AND user_uuid IS NOT NULL; + -- Drop the `favorite` column from the `ciphers` table, using the 12-step -- procedure from . -- Note that some steps aren't applicable and are omitted.