Example #1
0
def db_upgrade(old_version):
    migrator = SqliteMigrator(_db)
    if old_version < 2:
        User_login.create_table()
        migrate(
            migrator.add_column('clan_member', 'remaining_status',
                                TextField(null=True)),
            migrator.add_column('clan_challenge', 'message',
                                TextField(null=True)),
            migrator.add_column('clan_group', 'boss_lock_type',
                                IntegerField(default=0)),
            migrator.drop_column('user', 'last_save_slot'),
        )
    if old_version < 3:
        migrate(
            migrator.drop_column('user', 'auth_cookie'),
            migrator.drop_column('user', 'auth_cookie_expire_time'),
        )
    if old_version < 4:
        migrate(
            migrator.add_column('user', 'deleted',
                                BooleanField(default=False)), )
    if old_version < 5:
        migrate(
            migrator.add_column('user', 'must_change_password',
                                BooleanField(default=True)), )
    if old_version < 7:
        migrate(
            migrator.drop_column('clan_challenge', 'comment'),
            migrator.add_column('clan_challenge', 'behalf',
                                IntegerField(null=True)),
            migrator.drop_column('clan_subscribe', 'comment'),
            migrator.add_column('clan_subscribe', 'message',
                                TextField(null=True)),
            migrator.add_column('clan_group', 'apikey',
                                CharField(max_length=16, default=rand_string)),
        )
    if old_version < 8:
        migrate(
            migrator.add_column('clan_group', 'deleted',
                                BooleanField(default=False)),
            migrator.add_column('clan_group', 'battle_id',
                                IntegerField(default=0)),
            migrator.add_column('clan_challenge', 'bid',
                                IntegerField(default=0)),
            migrator.add_index('clan_challenge', ('bid', 'gid'), False))
    if old_version < 9:
        migrate(migrator.add_index('clan_member', ('qqid', ), False))
    if old_version < 10:
        migrate(
            migrator.add_index('clan_member', ('group_id', ), False),
            migrator.add_index('clan_subscribe', ('gid', ), False),
            migrator.add_index('clan_challenge', ('qqid', ), False),
            migrator.add_index('clan_challenge', ('qqid', 'challenge_pcrdate'),
                               False),
            migrator.add_index('clan_challenge',
                               ('bid', 'gid', 'challenge_pcrdate'), False),
        )
    if old_version < 11:
        migrate(
            migrator.add_column('user', 'notify_preference',
                                IntegerField(default=1)), )
    # if old_version < 12:
    #     migrate(
    #         migrator.alter_column_type('clan_group', 'challenging_member_qq_id',
    #                                    TextField(null=True)),
    #         migrator.add_column('clan_group', 'lock_member_qq_id',
    #                             IntegerField(null=True)),
    #     )
    if old_version == 12:
        # revert database version 12
        migrate(
            migrator.alter_column_type('clan_group',
                                       'challenging_member_qq_id',
                                       IntegerField(null=True)),
            migrator.drop_column('clan_group', 'lock_member_qq_id'),
        )

    DB_schema.replace(key='version', value=str(_version)).execute()