From 1264eb640a0ba95b8c1294918c6c65e7d5c734c9 Mon Sep 17 00:00:00 2001 From: Michael Powers Date: Mon, 16 Sep 2019 19:52:00 -0400 Subject: [PATCH] Added a migration that fixes #1 which caused attachments to be broken for the PostgreSQL backend. Also converts any CHAR types to VARCHAR to prevent the same issue from causing problems down the line. --- .../down.sql | 26 ++++++++++++++++++ .../2019-09-16-150000_fix_attachments/up.sql | 27 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 migrations/postgresql/2019-09-16-150000_fix_attachments/down.sql create mode 100644 migrations/postgresql/2019-09-16-150000_fix_attachments/up.sql diff --git a/migrations/postgresql/2019-09-16-150000_fix_attachments/down.sql b/migrations/postgresql/2019-09-16-150000_fix_attachments/down.sql new file mode 100644 index 00000000..f26824d1 --- /dev/null +++ b/migrations/postgresql/2019-09-16-150000_fix_attachments/down.sql @@ -0,0 +1,26 @@ +ALTER TABLE attachments ALTER COLUMN id TYPE CHAR(36); +ALTER TABLE attachments ALTER COLUMN cipher_uuid TYPE CHAR(36); +ALTER TABLE users ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE users ALTER COLUMN email TYPE VARCHAR(255); +ALTER TABLE devices ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE devices ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE organizations ALTER COLUMN uuid TYPE CHAR(40); +ALTER TABLE ciphers ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE ciphers ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE ciphers ALTER COLUMN organization_uuid TYPE CHAR(36); +ALTER TABLE folders ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE folders ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE collections ALTER COLUMN uuid TYPE CHAR(40); +ALTER TABLE collections ALTER COLUMN org_uuid TYPE CHAR(40); +ALTER TABLE users_collections ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE users_collections ALTER COLUMN collection_uuid TYPE CHAR(36); +ALTER TABLE users_organizations ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE users_organizations ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE users_organizations ALTER COLUMN org_uuid TYPE CHAR(36); +ALTER TABLE folders_ciphers ALTER COLUMN cipher_uuid TYPE CHAR(36); +ALTER TABLE folders_ciphers ALTER COLUMN folder_uuid TYPE CHAR(36); +ALTER TABLE ciphers_collections ALTER COLUMN cipher_uuid TYPE CHAR(36); +ALTER TABLE ciphers_collections ALTER COLUMN collection_uuid TYPE CHAR(36); +ALTER TABLE twofactor ALTER COLUMN uuid TYPE CHAR(36); +ALTER TABLE twofactor ALTER COLUMN user_uuid TYPE CHAR(36); +ALTER TABLE invitations ALTER COLUMN email TYPE VARCHAR(255); \ No newline at end of file diff --git a/migrations/postgresql/2019-09-16-150000_fix_attachments/up.sql b/migrations/postgresql/2019-09-16-150000_fix_attachments/up.sql new file mode 100644 index 00000000..388f2915 --- /dev/null +++ b/migrations/postgresql/2019-09-16-150000_fix_attachments/up.sql @@ -0,0 +1,27 @@ +-- Switch from CHAR() types to VARCHAR() types to avoid padding issues. +ALTER TABLE attachments ALTER COLUMN id TYPE TEXT; +ALTER TABLE attachments ALTER COLUMN cipher_uuid TYPE VARCHAR(40); +ALTER TABLE users ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE users ALTER COLUMN email TYPE TEXT; +ALTER TABLE devices ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE devices ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE organizations ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE ciphers ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE ciphers ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE ciphers ALTER COLUMN organization_uuid TYPE VARCHAR(40); +ALTER TABLE folders ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE folders ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE collections ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE collections ALTER COLUMN org_uuid TYPE VARCHAR(40); +ALTER TABLE users_collections ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE users_collections ALTER COLUMN collection_uuid TYPE VARCHAR(40); +ALTER TABLE users_organizations ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE users_organizations ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE users_organizations ALTER COLUMN org_uuid TYPE VARCHAR(40); +ALTER TABLE folders_ciphers ALTER COLUMN cipher_uuid TYPE VARCHAR(40); +ALTER TABLE folders_ciphers ALTER COLUMN folder_uuid TYPE VARCHAR(40); +ALTER TABLE ciphers_collections ALTER COLUMN cipher_uuid TYPE VARCHAR(40); +ALTER TABLE ciphers_collections ALTER COLUMN collection_uuid TYPE VARCHAR(40); +ALTER TABLE twofactor ALTER COLUMN uuid TYPE VARCHAR(40); +ALTER TABLE twofactor ALTER COLUMN user_uuid TYPE VARCHAR(40); +ALTER TABLE invitations ALTER COLUMN email TYPE TEXT; \ No newline at end of file