diff options
Diffstat (limited to 'app/schema.py')
-rw-r--r-- | app/schema.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/schema.py b/app/schema.py new file mode 100644 index 0000000..247638f --- /dev/null +++ b/app/schema.py @@ -0,0 +1,37 @@ +schema_up = [ + ''' + CREATE TABLE IF NOT EXISTS pics ( + id SERIAL PRIMARY KEY UNIQUE, + src_url VARCHAR(1024), + ext VARCHAR(10), + deleted BOOLEAN + ); + ''', + ''' + CREATE TABLE IF NOT EXISTS tags ( + id SERIAL NOT NULL PRIMARY KEY, + tag_name VARCHAR(128) + ); + ''', + ''' + CREATE TABLE IF NOT EXISTS tags_pics ( + pic_id INT NOT NULL, + tag_id INT NOT NULL, + PRIMARY KEY (pic_id, tag_id), + FOREIGN KEY (pic_id) REFERENCES pics(id) ON UPDATE CASCADE, + FOREIGN KEY (tag_id) REFERENCES tags(id) ON UPDATE CASCADE + ); + ''' +] + +schema_down = [ + 'DROP TABLE tags_pics', + 'DROP TABLE tags', + 'DROP TABLE pics' +] + +schema_delete = [ + 'DELETE * FROM tags_pics' + 'DELETE * FROM tags' + 'DELETE * FROM pics' +] |