cubicweb/misc/migration/3.22.0_Any.py
author Julien Cristau <julien.cristau@logilab.fr>
Wed, 16 Mar 2016 11:56:32 +0100
changeset 11215 4e79acdc36a6
parent 11129 97095348b3ee
permissions -rw-r--r--
[schema] use json to serialize constraints Require yams 0.43: constraints are serialized to json, which means we need to recreate the actual checks in the database on upgrade. Temporary deps in tox.ini to pull respective changes in yams.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11033
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     1
if confirm('use Europe/Paris as timezone?'):
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     2
    timezone = 'Europe/Paris'
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     3
else:
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     4
    import pytz
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     5
    while True:
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     6
        timezone = raw_input('enter your timezone')
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     7
        if timezone in pytz.common_timezones:
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     8
            break
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     9
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    10
dbdriver = repo.system_source.dbdriver
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    11
if dbdriver == 'postgres':
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    12
    sql("SET TIME ZONE '%s'" % timezone)
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    13
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    14
for entity in schema.entities():
11101
66fb68c25f83 [migration] fix crash on 3.22 upgrade if entity type doesn't exist in fsschema (pending removal)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11033
diff changeset
    15
    if entity.final or entity.type not in fsschema:
11033
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    16
        continue
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    17
    change_attribute_type(entity.type, 'creation_date', 'TZDatetime', ask_confirm=False)
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    18
    change_attribute_type(entity.type, 'modification_date', 'TZDatetime', ask_confirm=False)
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    19
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    20
if dbdriver == 'postgres':
63d860a14a17 [schema] Use TZDatetime for creation_date and modification_date
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    21
    sql("SET TIME ZONE UTC")