migrate to sqlite
NOTE: extension loading crashes docker (for some reason)
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
CREATE TABLE warrens (
|
||||
id UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
||||
path VARCHAR NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE INDEX idx_warrens_path ON warrens(path);
|
||||
@@ -1 +0,0 @@
|
||||
ALTER TABLE warrens ADD COLUMN name VARCHAR NOT NULL;
|
||||
@@ -1,9 +0,0 @@
|
||||
CREATE TABLE users (
|
||||
id UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
||||
name VARCHAR NOT NULL,
|
||||
email VARCHAR NOT NULL,
|
||||
hash VARCHAR NOT NULL,
|
||||
admin BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
@@ -1 +0,0 @@
|
||||
ALTER TABLE users ADD CONSTRAINT users_email_key UNIQUE (email);
|
||||
@@ -1,6 +0,0 @@
|
||||
CREATE TABLE auth_sessions (
|
||||
session_id VARCHAR NOT NULL PRIMARY KEY,
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
expires_at TIMESTAMP NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
@@ -1,11 +0,0 @@
|
||||
CREATE TABLE user_warrens (
|
||||
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
warren_id UUID NOT NULL REFERENCES warrens(id) ON DELETE CASCADE,
|
||||
can_create_children BOOLEAN NOT NULL,
|
||||
can_list_files BOOLEAN NOT NULL,
|
||||
can_read_files BOOLEAN NOT NULL,
|
||||
can_modify_files BOOLEAN NOT NULL,
|
||||
can_delete_files BOOLEAN NOT NULL,
|
||||
can_delete_warren BOOLEAN NOT NULL,
|
||||
PRIMARY KEY(user_id, warren_id)
|
||||
);
|
||||
@@ -1 +0,0 @@
|
||||
ALTER TABLE user_warrens DROP COLUMN can_create_children, DROP COLUMN can_delete_warren;
|
||||
@@ -1,2 +0,0 @@
|
||||
ALTER TABLE users ALTER COLUMN hash DROP NOT NULL;
|
||||
ALTER TABLE users ADD COLUMN oidc_sub VARCHAR UNIQUE;
|
||||
@@ -1,9 +0,0 @@
|
||||
CREATE TABLE shares (
|
||||
id UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
||||
creator_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
warren_id UUID NOT NULL REFERENCES warrens(id) ON DELETE CASCADE,
|
||||
path VARCHAR NOT NULL,
|
||||
password_hash VARCHAR NOT NULL,
|
||||
expires_at TIMESTAMP,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
@@ -1,21 +0,0 @@
|
||||
ALTER TABLE
|
||||
user_warrens
|
||||
ADD COLUMN
|
||||
can_list_shares BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN
|
||||
can_create_shares BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN
|
||||
can_modify_shares BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN
|
||||
can_delete_shares BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
ALTER TABLE
|
||||
user_warrens
|
||||
ALTER COLUMN
|
||||
can_list_shares DROP DEFAULT,
|
||||
ALTER COLUMN
|
||||
can_create_shares DROP DEFAULT,
|
||||
ALTER COLUMN
|
||||
can_modify_shares DROP DEFAULT,
|
||||
ALTER COLUMN
|
||||
can_delete_shares DROP DEFAULT;
|
||||
@@ -1 +0,0 @@
|
||||
ALTER TABLE shares ALTER COLUMN password_hash DROP NOT NULL;
|
||||
@@ -1 +0,0 @@
|
||||
CREATE INDEX idx_shares_path ON shares(path);
|
||||
50
backend/migrations/20250906174941_init.sql
Normal file
50
backend/migrations/20250906174941_init.sql
Normal file
@@ -0,0 +1,50 @@
|
||||
CREATE TABLE users (
|
||||
id BLOB NOT NULL PRIMARY KEY DEFAULT (uuid_blob(uuid())),
|
||||
oidc_sub TEXT UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
email TEXT NOT NULL UNIQUE,
|
||||
admin BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
hash TEXT,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE warrens (
|
||||
id BLOB NOT NULL PRIMARY KEY DEFAULT (uuid_blob(uuid())),
|
||||
name TEXT NOT NULL,
|
||||
path TEXT NOT NULL UNIQUE,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE user_warrens (
|
||||
user_id BLOB NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
warren_id BLOB NOT NULL REFERENCES warrens(id) ON DELETE CASCADE,
|
||||
can_list_files BOOLEAN NOT NULL,
|
||||
can_read_files BOOLEAN NOT NULL,
|
||||
can_modify_files BOOLEAN NOT NULL,
|
||||
can_delete_files BOOLEAN NOT NULL,
|
||||
can_list_shares BOOLEAN NOT NULL,
|
||||
can_create_shares BOOLEAN NOT NULL,
|
||||
can_modify_shares BOOLEAN NOT NULL,
|
||||
can_delete_shares BOOLEAN NOT NULL,
|
||||
PRIMARY KEY(user_id, warren_id)
|
||||
);
|
||||
|
||||
CREATE TABLE shares (
|
||||
id BLOB NOT NULL PRIMARY KEY DEFAULT (uuid_blob(uuid())),
|
||||
creator_id BLOB NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
warren_id BLOB NOT NULL REFERENCES warrens(id) ON DELETE CASCADE,
|
||||
path TEXT NOT NULL,
|
||||
password_hash TEXT,
|
||||
expires_at DATETIME,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE INDEX idx_shares_path ON shares(path);
|
||||
|
||||
CREATE TABLE auth_sessions (
|
||||
session_id TEXT NOT NULL PRIMARY KEY,
|
||||
user_id BLOB NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
expires_at DATETIME NOT NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
Reference in New Issue
Block a user