summaryrefslogtreecommitdiffstats
path: root/kittystore/storm/schema/patch_10.py
diff options
context:
space:
mode:
Diffstat (limited to 'kittystore/storm/schema/patch_10.py')
-rw-r--r--kittystore/storm/schema/patch_10.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/kittystore/storm/schema/patch_10.py b/kittystore/storm/schema/patch_10.py
new file mode 100644
index 0000000..f04f8e8
--- /dev/null
+++ b/kittystore/storm/schema/patch_10.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+
+from __future__ import absolute_import
+
+from . import get_db_type
+
+
+SQL = {
+ "sqlite": ["""
+ CREATE TABLE "user_address" (
+ user_id VARCHAR(255) NOT NULL,
+ address VARCHAR(255) NOT NULL,
+ PRIMARY KEY (user_id, address)
+ );""",
+ 'CREATE INDEX "ix_user_address_user_id" ON "user_address" (user_id);',
+ 'CREATE UNIQUE INDEX "ix_user_address_address" ON "user_address" (address);',
+ ],
+ "postgres": ["""
+ CREATE TABLE "user_address" (
+ user_id VARCHAR(255) NOT NULL,
+ address VARCHAR(255) NOT NULL,
+ PRIMARY KEY (user_id, address)
+ );""",
+ 'CREATE INDEX "ix_user_address_user_id" ON "user_address" USING btree (user_id);',
+ 'CREATE UNIQUE INDEX "ix_user_address_address" ON "user_address" USING btree (address);',
+ ],
+ "mysql": ["""
+ CREATE TABLE `user_address` (
+ user_id VARCHAR(255) NOT NULL,
+ address VARCHAR(255) NOT NULL,
+ PRIMARY KEY (user_id, address)
+ );""",
+ 'CREATE INDEX `ix_user_address_user_id` ON `user_address` (user_id);',
+ 'CREATE UNIQUE INDEX `ix_user_address_address` ON `user_address` (address);',
+ ],
+ }
+
+
+def apply(store):
+ """Add the user_address table"""
+ dbtype = get_db_type(store)
+ for statement in SQL[dbtype]:
+ store.execute(statement)
+ store.commit()