mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2025-08-14 06:52:30 +00:00
Rework migrations for MySQL
This commit is contained in:
parent
85c8a01f4a
commit
ab95a69dc8
22 changed files with 154 additions and 321 deletions
|
@ -1,14 +1,14 @@
|
|||
CREATE TABLE users (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
email TEXT NOT NULL UNIQUE,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
password_hash BLOB NOT NULL,
|
||||
salt BLOB NOT NULL,
|
||||
password_iterations INTEGER NOT NULL,
|
||||
password_hint TEXT,
|
||||
key TEXT NOT NULL,
|
||||
akey TEXT NOT NULL,
|
||||
private_key TEXT,
|
||||
public_key TEXT,
|
||||
totp_secret TEXT,
|
||||
|
@ -19,24 +19,24 @@ CREATE TABLE users (
|
|||
);
|
||||
|
||||
CREATE TABLE devices (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
name TEXT NOT NULL,
|
||||
type INTEGER NOT NULL,
|
||||
atype INTEGER NOT NULL,
|
||||
push_token TEXT,
|
||||
refresh_token TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE ciphers (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
folder_uuid TEXT REFERENCES folders (uuid),
|
||||
organization_uuid TEXT,
|
||||
type INTEGER NOT NULL,
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
folder_uuid VARCHAR(40) REFERENCES folders (uuid),
|
||||
organization_uuid VARCHAR(40),
|
||||
atype INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
notes TEXT,
|
||||
fields TEXT,
|
||||
|
@ -45,18 +45,18 @@ CREATE TABLE ciphers (
|
|||
);
|
||||
|
||||
CREATE TABLE attachments (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
cipher_uuid TEXT NOT NULL REFERENCES ciphers (uuid),
|
||||
id VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
cipher_uuid VARCHAR(40) NOT NULL REFERENCES ciphers (uuid),
|
||||
file_name TEXT NOT NULL,
|
||||
file_size INTEGER NOT NULL
|
||||
|
||||
);
|
||||
|
||||
CREATE TABLE folders (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
name TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -1,31 +1,30 @@
|
|||
CREATE TABLE collections (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
org_uuid TEXT NOT NULL REFERENCES organizations (uuid),
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
org_uuid VARCHAR(40) NOT NULL REFERENCES organizations (uuid),
|
||||
name TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE organizations (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
billing_email TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE users_collections (
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
collection_uuid TEXT NOT NULL REFERENCES collections (uuid),
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
collection_uuid VARCHAR(40) NOT NULL REFERENCES collections (uuid),
|
||||
PRIMARY KEY (user_uuid, collection_uuid)
|
||||
);
|
||||
|
||||
CREATE TABLE users_organizations (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
org_uuid TEXT NOT NULL REFERENCES organizations (uuid),
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
org_uuid VARCHAR(40) NOT NULL REFERENCES organizations (uuid),
|
||||
|
||||
access_all BOOLEAN NOT NULL,
|
||||
key TEXT NOT NULL,
|
||||
akey TEXT NOT NULL,
|
||||
status INTEGER NOT NULL,
|
||||
type INTEGER NOT NULL,
|
||||
atype INTEGER NOT NULL,
|
||||
|
||||
UNIQUE (user_uuid, org_uuid)
|
||||
);
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
ALTER TABLE ciphers RENAME TO oldCiphers;
|
||||
|
||||
CREATE TABLE ciphers (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
user_uuid TEXT REFERENCES users (uuid), -- Make this optional
|
||||
organization_uuid TEXT REFERENCES organizations (uuid), -- Add reference to orgs table
|
||||
user_uuid VARCHAR(40) REFERENCES users (uuid), -- Make this optional
|
||||
organization_uuid VARCHAR(40) REFERENCES organizations (uuid), -- Add reference to orgs table
|
||||
-- Remove folder_uuid
|
||||
type INTEGER NOT NULL,
|
||||
atype INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
notes TEXT,
|
||||
fields TEXT,
|
||||
|
@ -16,14 +16,14 @@ CREATE TABLE ciphers (
|
|||
);
|
||||
|
||||
CREATE TABLE folders_ciphers (
|
||||
cipher_uuid TEXT NOT NULL REFERENCES ciphers (uuid),
|
||||
folder_uuid TEXT NOT NULL REFERENCES folders (uuid),
|
||||
cipher_uuid VARCHAR(40) NOT NULL REFERENCES ciphers (uuid),
|
||||
folder_uuid VARCHAR(40) NOT NULL REFERENCES folders (uuid),
|
||||
|
||||
PRIMARY KEY (cipher_uuid, folder_uuid)
|
||||
);
|
||||
|
||||
INSERT INTO ciphers (uuid, created_at, updated_at, user_uuid, organization_uuid, type, name, notes, fields, data, favorite)
|
||||
SELECT uuid, created_at, updated_at, user_uuid, organization_uuid, type, name, notes, fields, data, favorite FROM oldCiphers;
|
||||
INSERT INTO ciphers (uuid, created_at, updated_at, user_uuid, organization_uuid, atype, name, notes, fields, data, favorite)
|
||||
SELECT uuid, created_at, updated_at, user_uuid, organization_uuid, atype, name, notes, fields, data, favorite FROM oldCiphers;
|
||||
|
||||
INSERT INTO folders_ciphers (cipher_uuid, folder_uuid)
|
||||
SELECT uuid, folder_uuid FROM oldCiphers WHERE folder_uuid IS NOT NULL;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
CREATE TABLE ciphers_collections (
|
||||
cipher_uuid TEXT NOT NULL REFERENCES ciphers (uuid),
|
||||
collection_uuid TEXT NOT NULL REFERENCES collections (uuid),
|
||||
cipher_uuid VARCHAR(40) NOT NULL REFERENCES ciphers (uuid),
|
||||
collection_uuid VARCHAR(40) NOT NULL REFERENCES collections (uuid),
|
||||
PRIMARY KEY (cipher_uuid, collection_uuid)
|
||||
);
|
||||
);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
ALTER TABLE attachments RENAME TO oldAttachments;
|
||||
|
||||
CREATE TABLE attachments (
|
||||
id TEXT NOT NULL PRIMARY KEY,
|
||||
cipher_uuid TEXT NOT NULL REFERENCES ciphers (uuid),
|
||||
id VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
cipher_uuid VARCHAR(40) NOT NULL REFERENCES ciphers (uuid),
|
||||
file_name TEXT NOT NULL,
|
||||
file_size INTEGER NOT NULL
|
||||
|
||||
|
@ -11,4 +11,4 @@ CREATE TABLE attachments (
|
|||
INSERT INTO attachments (id, cipher_uuid, file_name, file_size)
|
||||
SELECT id, cipher_uuid, file_name, file_size FROM oldAttachments;
|
||||
|
||||
DROP TABLE oldAttachments;
|
||||
DROP TABLE oldAttachments;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
CREATE TABLE twofactor (
|
||||
uuid TEXT NOT NULL PRIMARY KEY,
|
||||
user_uuid TEXT NOT NULL REFERENCES users (uuid),
|
||||
type INTEGER NOT NULL,
|
||||
uuid VARCHAR(40) NOT NULL PRIMARY KEY,
|
||||
user_uuid VARCHAR(40) NOT NULL REFERENCES users (uuid),
|
||||
atype INTEGER NOT NULL,
|
||||
enabled BOOLEAN NOT NULL,
|
||||
data TEXT NOT NULL,
|
||||
|
||||
UNIQUE (user_uuid, type)
|
||||
UNIQUE (user_uuid, atype)
|
||||
);
|
||||
|
||||
|
||||
INSERT INTO twofactor (uuid, user_uuid, type, enabled, data)
|
||||
SELECT lower(hex(randomblob(16))) , uuid, 0, 1, u.totp_secret FROM users u where u.totp_secret IS NOT NULL;
|
||||
INSERT INTO twofactor (uuid, user_uuid, atype, enabled, data)
|
||||
SELECT UUID(), uuid, 0, 1, u.totp_secret FROM users u where u.totp_secret IS NOT NULL;
|
||||
|
||||
UPDATE users SET totp_secret = NULL; -- Instead of recreating the table, just leave the columns empty
|
||||
UPDATE users SET totp_secret = NULL; -- Instead of recreating the table, just leave the columns empty
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
CREATE TABLE invitations (
|
||||
email TEXT NOT NULL PRIMARY KEY
|
||||
);
|
||||
email VARCHAR(255) NOT NULL PRIMARY KEY
|
||||
);
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
ALTER TABLE attachments
|
||||
ADD COLUMN
|
||||
key TEXT;
|
||||
akey TEXT;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue