mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-21 17:09:09 +01:00
44 lines
1.5 KiB
SQL
44 lines
1.5 KiB
SQL
-- Add sync_dir to the unique index, or else it will fail if the user disables sync
|
|
-- and re-enables it for a different directory.
|
|
|
|
-- Step 1: Rename the existing table
|
|
ALTER TABLE sync_states
|
|
RENAME TO sync_states_old;
|
|
|
|
-- Step 2: Create the new table with the updated unique constraint
|
|
CREATE TABLE sync_states
|
|
(
|
|
id TEXT NOT NULL PRIMARY KEY,
|
|
model TEXT DEFAULT 'sync_state' NOT NULL,
|
|
workspace_id TEXT NOT NULL
|
|
REFERENCES workspaces ON DELETE CASCADE,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
flushed_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
checksum TEXT NOT NULL,
|
|
model_id TEXT NOT NULL,
|
|
sync_dir TEXT NOT NULL,
|
|
rel_path TEXT NOT NULL
|
|
);
|
|
|
|
CREATE UNIQUE INDEX idx_sync_states_unique
|
|
ON sync_states (workspace_id, model_id, sync_dir);
|
|
|
|
-- Step 3: Copy the data
|
|
INSERT INTO sync_states (id, model, workspace_id, created_at, updated_at,
|
|
flushed_at, checksum, model_id, sync_dir, rel_path)
|
|
SELECT id,
|
|
model,
|
|
workspace_id,
|
|
created_at,
|
|
updated_at,
|
|
flushed_at,
|
|
checksum,
|
|
model_id,
|
|
sync_dir,
|
|
rel_path
|
|
FROM sync_states_old;
|
|
|
|
-- Step 4: Drop the old table
|
|
DROP TABLE sync_states_old;
|