Schema 12 - add some foreign keys

This commit is contained in:
Mike Dilger 2023-01-15 20:28:26 +13:00
parent 262a7d9065
commit fde7bff420
2 changed files with 25 additions and 0 deletions

View File

@ -116,6 +116,7 @@ fn upgrade(db: &Connection, mut version: u16) -> Result<(), Error> {
apply_sql!(db, version, 9, "schema9.sql");
apply_sql!(db, version, 10, "schema10.sql");
apply_sql!(db, version, 11, "schema11.sql");
apply_sql!(db, version, 12, "schema12.sql");
tracing::info!("Database is at version {}", version);
Ok(())
}

24
src/db/schema12.sql Normal file
View File

@ -0,0 +1,24 @@
ALTER TABLE event_hashtag RENAME TO event_hashtag_old;
CREATE TABLE event_hashtag (
event TEXT NOT NULL,
hashtag TEXT NOT NULL,
UNIQUE(event, hashtag),
CONSTRAINT fk_event FOREIGN KEY (event) REFERENCES event (id) ON DELETE CASCADE
);
INSERT OR IGNORE INTO event_hashtag (event, hashtag) SELECT event, hashtag FROM event_hashtag_old;
DROP TABLE event_hashtag_old;
ALTER TABLE event_relationship RENAME TO event_relationship_old;
CREATE TABLE event_relationship (
original TEXT NOT NULL,
refers_to TEXT NOT NULL,
relationship TEXT CHECK (relationship IN ('reply', 'quote', 'reaction', 'deletion')) NOT NULL,
content TEXT DEFAULT NULL,
CONSTRAINT fk_original FOREIGN KEY (original) REFERENCES event (id) ON DELETE CASCADE,
UNIQUE(original, refers_to)
);
INSERT OR IGNORE INTO event_relationship (original, refers_to, relationship, content)
SELECT original, referring, relationship, content FROM event_relationship_old;
DROP TABLE event_relationship_old;