summaryrefslogtreecommitdiffstats
path: root/app/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/schema.py')
-rw-r--r--app/schema.py37
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'
+]