summaryrefslogtreecommitdiffstats
path: root/kittystore/storm/schema/patch_3.py
blob: e7bc8e0dd56d2577aaf44bd3c17f8d2f219631bc (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
# -*- coding: utf-8 -*-

from __future__ import absolute_import

from . import get_db_type


SQL = {
    "sqlite": [
        'ALTER TABLE "email" ADD COLUMN "timezone" INTEGER NOT NULL DEFAULT 0;',
        ],
    "postgres": [
        'ALTER TABLE "email" ADD COLUMN "timezone" INTEGER;',
        'UPDATE "email" SET "timezone" = EXTRACT(TIMEZONE_MINUTE FROM date)',
        'UPDATE "email" SET date = date AT TIME ZONE \'UTC\';',
        'ALTER TABLE "email" ALTER COLUMN "date" TYPE TIMESTAMP WITHOUT TIME ZONE;',
        'ALTER TABLE "email" ALTER COLUMN "timezone" SET NOT NULL;',
        'ALTER TABLE "thread" ALTER COLUMN "date_active" TYPE TIMESTAMP WITHOUT TIME ZONE;',
        ],
    "mysql": [],
    }


def apply(store):
    """Add the thread table"""
    dbtype = get_db_type(store)
    for statement in SQL[dbtype]:
        store.execute(statement)
    store.commit()