From cc0913d92ed7f6b5355990e711893c5d89e6ee35 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Fri, 10 Jan 2014 08:55:59 +0100 Subject: WIP --- kittystore/storm/schema/__init__.py | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/kittystore/storm/schema/__init__.py b/kittystore/storm/schema/__init__.py index 8e6cdff..58dd0da 100644 --- a/kittystore/storm/schema/__init__.py +++ b/kittystore/storm/schema/__init__.py @@ -77,6 +77,17 @@ CREATES = { PRIMARY KEY (list_name, message_id, counter), FOREIGN KEY (list_name, message_id) REFERENCES email(list_name, message_id) ON DELETE CASCADE + );""", """ + CREATE TABLE "vote" ( + list_name VARCHAR(255) NOT NULL, + message_id VARCHAR(255) NOT NULL, + user_id VARCHAR(255) NOT NULL, + value TINYINT NOT NULL, + PRIMARY KEY (list_name, message_id, user_id), + FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE, + FOREIGN KEY (list_name, message_id) + REFERENCES email(list_name, message_id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES user(id) );""", 'CREATE INDEX "ix_sender_user_id" ON "sender" (user_id);', 'CREATE INDEX "ix_email_list_name" ON "email" (list_name);', @@ -92,6 +103,8 @@ CREATES = { 'CREATE INDEX "ix_thread_list_name" ON "thread" (list_name);', 'CREATE UNIQUE INDEX "ix_category_name" ON "category" (name);', 'CREATE INDEX "ix_attachment_list_name_message_id" ON "attachment" (list_name, message_id);', + 'CREATE INDEX "ix_vote_list_name_message_id" ON "vote" (list_name, message_id);', + 'CREATE INDEX "ix_vote_user_id" ON "vote" (user_id);', ], "postgres": [ """ @@ -179,6 +192,17 @@ CREATES = { PRIMARY KEY (list_name, message_id, counter), FOREIGN KEY (list_name, message_id) REFERENCES email(list_name, message_id) ON DELETE CASCADE + );""", """ + CREATE TABLE "vote" ( + list_name VARCHAR(255) NOT NULL, + message_id VARCHAR(255) NOT NULL, + user_id VARCHAR(255) NOT NULL, + value SMALLINT NOT NULL, + PRIMARY KEY (list_name, message_id, user_id), + FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE, + FOREIGN KEY (list_name, message_id) + REFERENCES email(list_name, message_id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES user(id) );""", 'CREATE INDEX "ix_sender_user_id" ON "sender" (user_id);', 'CREATE INDEX "ix_email_list_name" ON "email" (list_name);', @@ -194,6 +218,8 @@ CREATES = { 'CREATE INDEX "ix_thread_list_name" ON "thread" (list_name);', 'CREATE UNIQUE INDEX "ix_category_name" ON "category" (name);', 'CREATE INDEX "ix_attachment_list_name_message_id" ON "attachment" (list_name, message_id);', + 'CREATE INDEX "ix_vote_list_name_message_id" ON "vote" (list_name, message_id);', + 'CREATE INDEX "ix_vote_user_id" ON "vote" (user_id);', ], "mysql": [ """ @@ -271,6 +297,17 @@ CREATES = { PRIMARY KEY (list_name, message_id, counter), FOREIGN KEY (list_name, message_id) REFERENCES email(list_name, message_id) ON DELETE CASCADE + );""", """ + CREATE TABLE `vote` ( + list_name VARCHAR(255) NOT NULL, + message_id VARCHAR(255) NOT NULL, + user_id VARCHAR(255) NOT NULL, + value TINYINT NOT NULL, + PRIMARY KEY (list_name, message_id, user_id), + FOREIGN KEY (list_name) REFERENCES list(name) ON DELETE CASCADE, + FOREIGN KEY (list_name, message_id) + REFERENCES email(list_name, message_id) ON DELETE CASCADE, + FOREIGN KEY (user_id) REFERENCES user(id) );""", 'CREATE INDEX `ix_sender_user_id` ON `sender` (user_id);', 'CREATE INDEX `ix_email_list_name` ON `email` (list_name);', @@ -286,6 +323,8 @@ CREATES = { 'CREATE INDEX `ix_thread_list_name` ON `thread` (list_name);', 'CREATE UNIQUE INDEX `ix_category_name` ON `category` (name);', 'CREATE INDEX `ix_attachment_list_name_message_id` ON `attachment` (list_name, message_id);', + 'CREATE INDEX `ix_vote_list_name_message_id` ON `vote` (list_name, message_id);', + 'CREATE INDEX `ix_vote_user_id" ON "vote` (user_id);', ], } -- cgit