Switch backend to node, docker likely broken

This commit is contained in:
2024-08-26 00:18:00 +02:00
parent bf1719d75d
commit b487ab82cc
15 changed files with 7101 additions and 56 deletions

View File

@@ -0,0 +1,31 @@
CREATE TABLE IF NOT EXISTS channels (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
createdAt DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
channelId INTEGER,
filePath TEXT,
fileType TEXT,
fileSize INTEGER,
originalName TEXT,
createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (channelId) REFERENCES channels (id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
channelId INTEGER,
content TEXT,
fileId INTEGER NULL,
createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (channelId) REFERENCES channels (id) ON DELETE CASCADE,
FOREIGN KEY (fileId) REFERENCES files (id) ON DELETE
SET
NULL
);
CREATE VIRTUAL TABLE IF NOT EXISTS messages_fts USING fts5(
content,
content = 'messages',
content_rowid = 'id'
);

View File

@@ -0,0 +1,52 @@
-- 1. Create a backup of the existing tables
CREATE TABLE channels_backup AS SELECT * FROM channels;
CREATE TABLE files_backup AS SELECT * FROM files;
CREATE TABLE messages_backup AS SELECT * FROM messages;
-- 2. Drop the existing tables
DROP TABLE channels;
DROP TABLE files;
DROP TABLE messages;
-- 3. Recreate the tables with the updated schema
CREATE TABLE IF NOT EXISTS channels (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
createdAt DATETIME DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
channelId INTEGER,
filePath TEXT,
fileType TEXT,
fileSize INTEGER,
originalName TEXT,
createdAt DATETIME DEFAULT (datetime('now', 'localtime')),
FOREIGN KEY (channelId) REFERENCES channels (id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
channelId INTEGER,
content TEXT,
fileId INTEGER NULL,
createdAt DATETIME DEFAULT (datetime('now', 'localtime')),
FOREIGN KEY (channelId) REFERENCES channels (id) ON DELETE CASCADE,
FOREIGN KEY (fileId) REFERENCES files (id) ON DELETE SET NULL
);
-- 4. Migrate the data back from the backup tables
INSERT INTO channels (id, name, createdAt)
SELECT id, name, createdAt FROM channels_backup;
INSERT INTO files (id, channelId, filePath, fileType, fileSize, originalName, createdAt)
SELECT id, channelId, filePath, fileType, fileSize, originalName, createdAt FROM files_backup;
INSERT INTO messages (id, channelId, content, fileId, createdAt)
SELECT id, channelId, content, fileId, createdAt FROM messages_backup;
-- 5. Drop the backup tables
DROP TABLE channels_backup;
DROP TABLE files_backup;
DROP TABLE messages_backup;