commit 3bbdbb832c975d0c9b3e5573fe2bd5ea66b11015
parent f83a8a36d16eb14c4d2f68f7edf7989bbf7973cb
Author: Jeremy Lin <jeremy.lin@gmail.com>
Date: Sat, 22 Aug 2020 17:14:05 -0700
Transfer favorite status for user-owned ciphers
Diffstat:
6 files changed, 57 insertions(+), 9 deletions(-)
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 <https://www.sqlite.org/lang_altertable.html#altertabrename>.
-- Note that some steps aren't applicable and are omitted.