Store YAML frontmatter in notes.
This commit is contained in:
20
migrations/add_cascade_delete_note_links.sql
Normal file
20
migrations/add_cascade_delete_note_links.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Migration to add CASCADE delete to note_link foreign keys
|
||||
-- This ensures that when a note is deleted, all links to/from it are also deleted
|
||||
|
||||
-- For PostgreSQL
|
||||
-- Drop existing foreign key constraints
|
||||
ALTER TABLE note_link DROP CONSTRAINT IF EXISTS note_link_source_note_id_fkey;
|
||||
ALTER TABLE note_link DROP CONSTRAINT IF EXISTS note_link_target_note_id_fkey;
|
||||
|
||||
-- Add new foreign key constraints with CASCADE
|
||||
ALTER TABLE note_link
|
||||
ADD CONSTRAINT note_link_source_note_id_fkey
|
||||
FOREIGN KEY (source_note_id)
|
||||
REFERENCES note(id)
|
||||
ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE note_link
|
||||
ADD CONSTRAINT note_link_target_note_id_fkey
|
||||
FOREIGN KEY (target_note_id)
|
||||
REFERENCES note(id)
|
||||
ON DELETE CASCADE;
|
||||
25
migrations/add_cascade_delete_note_links_sqlite.sql
Normal file
25
migrations/add_cascade_delete_note_links_sqlite.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user