summaryrefslogtreecommitdiffstats
path: root/kittystore/storm/schema/patch_10.py
blob: f04f8e852841c087a40935c7f26a45e02ffd5e95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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()