25 lines
876 B
SQL
25 lines
876 B
SQL
-- SQLite migration for cascade delete on note_link
|
|
-- SQLite doesn't support ALTER TABLE for foreign keys, so we need to recreate the table
|
|
|
|
-- Create new table with CASCADE delete
|
|
CREATE TABLE note_link_new (
|
|
id INTEGER PRIMARY KEY,
|
|
source_note_id INTEGER NOT NULL,
|
|
target_note_id INTEGER NOT NULL,
|
|
link_type VARCHAR(50) DEFAULT 'related',
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
created_by_id INTEGER NOT NULL,
|
|
FOREIGN KEY (source_note_id) REFERENCES note(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (target_note_id) REFERENCES note(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (created_by_id) REFERENCES user(id),
|
|
UNIQUE(source_note_id, target_note_id)
|
|
);
|
|
|
|
-- Copy data from old table
|
|
INSERT INTO note_link_new SELECT * FROM note_link;
|
|
|
|
-- Drop old table
|
|
DROP TABLE note_link;
|
|
|
|
-- Rename new table
|
|
ALTER TABLE note_link_new RENAME TO note_link; |