コード例 #1
0
def upgrade_db_structure():
    """Upgrade the tables version by version"""
    from playhouse.migrate import PostgresqlMigrator, migrate
    migrator = PostgresqlMigrator(wapt_db)
    logger.info('Current DB: %s version: %s' %
                (wapt_db.connect_kwargs, get_db_version()))

    # from 1.4.1 to 1.4.2
    if get_db_version() < '1.4.2':
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), '1.4.2'))
            migrate(
                migrator.rename_column(Hosts._meta.name, 'host', 'host_info'),
                migrator.rename_column(Hosts._meta.name, 'wapt',
                                       'wapt_status'),
                migrator.rename_column(Hosts._meta.name, 'update_status',
                                       'last_update_status'),
                migrator.rename_column(Hosts._meta.name, 'softwares',
                                       'installed_softwares'),
                migrator.rename_column(Hosts._meta.name, 'packages',
                                       'installed_packages'),
            )
            HostGroups.create_table(fail_silently=True)
            HostJsonRaw.create_table(fail_silently=True)
            HostWsus.create_table(fail_silently=True)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = '1.4.2'
            v.save()

    next_version = '1.4.3'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            if not [
                    c.name for c in wapt_db.get_columns('hosts')
                    if c.name == 'host_certificate'
            ]:
                migrate(
                    migrator.add_column(Hosts._meta.name, 'host_certificate',
                                        Hosts.host_certificate), )

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.4.3.1'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            columns = [c.name for c in wapt_db.get_columns('hosts')]
            opes = []
            if not 'last_logged_on_user' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name,
                                        'last_logged_on_user',
                                        Hosts.last_logged_on_user))
            if 'installed_sofwares' in columns:
                opes.append(
                    migrator.drop_column(Hosts._meta.name,
                                         'installed_sofwares'))
            if 'installed_sofwares' in columns:
                opes.append(
                    migrator.drop_column(Hosts._meta.name,
                                         'installed_packages'))
            migrate(*opes)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.4.3.2'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            wapt_db.execute_sql('''\
                ALTER TABLE hostsoftwares
                    ALTER COLUMN publisher TYPE character varying(2000),
                    ALTER COLUMN version TYPE character varying(1000);''')
            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.0.4'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            columns = [c.name for c in wapt_db.get_columns('hosts')]
            opes = []
            if not 'server_uuid' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name, 'server_uuid',
                                        Hosts.server_uuid))
            migrate(*opes)
            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.0.11'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            HostGroups.create_table(fail_silently=True)
            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.1.1'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            columns = [c.name for c in wapt_db.get_columns('hosts')]
            opes = []
            if not 'computer_ad_site' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name, 'computer_ad_site',
                                        Hosts.computer_ad_site))
            if not 'computer_ad_ou' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name, 'computer_ad_ou',
                                        Hosts.computer_ad_ou))
            if not 'computer_ad_groups' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name, 'computer_ad_groups',
                                        Hosts.computer_ad_groups))
            migrate(*opes)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.1.3'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            columns = [c.name for c in wapt_db.get_columns('hosts')]
            opes = []
            if not 'registration_auth_user' in columns:
                opes.append(
                    migrator.add_column(Hosts._meta.name,
                                        'registration_auth_user',
                                        Hosts.registration_auth_user))
            migrate(*opes)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.1.14'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            columns = [
                c.name for c in wapt_db.get_columns('hostpackagesstatus')
            ]
            opes = []
            if not 'depends' in columns:
                opes.append(
                    migrator.add_column(HostPackagesStatus._meta.name,
                                        'depends', HostPackagesStatus.depends))
            if not 'conflicts' in columns:
                opes.append(
                    migrator.add_column(HostPackagesStatus._meta.name,
                                        'conflicts',
                                        HostPackagesStatus.conflicts))
            migrate(*opes)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()

    next_version = '1.5.1.17'
    if get_db_version() < next_version:
        with wapt_db.atomic():
            logger.info('Migrating from %s to %s' %
                        (get_db_version(), next_version))
            opes = []
            ##
            migrate(*opes)

            WsusScan2History.create_table(fail_silently=True)

            (v, created) = ServerAttribs.get_or_create(key='db_version')
            v.value = next_version
            v.save()
コード例 #2
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == "__main__":
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():

        migrate(migrator.drop_column("users", "countries"))

    db.close_db(None)
コード例 #3
0
ファイル: 0002.py プロジェクト: julianapeace/bootstraptornado
def backward():  #removes author_id column, will delete all data
    migrator = PostgresqlMigrator(models.DB)
    migrate(migrator.drop_column('blogpost', 'author_id'), )
    models.Author.drop_table()
コード例 #4
0
        migrate(migrator.add_column('groups', 'type', Group.type))

        for name in ['default', 'admin']:
            group = Group.get(Group.name == name)
            group.type = Group.BUILTIN_GROUP
            group.save()

        # Create association table between data sources and groups
        DataSourceGroup.create_table()

        # add default to existing data source:
        default_org = Organization.get_by_id(1)
        default_group = Group.get(Group.name == "default")
        for ds in DataSource.all(default_org):
            DataSourceGroup.create(data_source=ds, group=default_group)

        # change the groups list on a user object to be an ids list
        migrate(migrator.rename_column('users', 'groups', 'old_groups'), )

        migrate(migrator.add_column('users', 'groups', User.groups))

        group_map = dict(map(lambda g: (g.name, g.id), Group.select()))
        user_map = defaultdict(list)
        for user in User.select(User, peewee.SQL('old_groups')):
            group_ids = [group_map[group] for group in user.old_groups]
            user.update_instance(groups=group_ids)

        migrate(migrator.drop_column('users', 'old_groups'))

    db.close_db(None)
コード例 #5
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        migrate(migrator.drop_column('groups', 'tables'))

    db.close_db(None)
コード例 #6
0
ファイル: migration.py プロジェクト: patarapolw/python-imserv
from peewee import PostgresqlDatabase
from playhouse.migrate import PostgresqlMigrator, migrate

if __name__ == '__main__':
    migrator = PostgresqlMigrator(PostgresqlDatabase('imserv'))
    migrate(migrator.drop_column('image', 'created'))
コード例 #7
0
ファイル: 0018_add_groups_refs.py プロジェクト: Xangis/redash
            group = Group.get(Group.name==name)
            group.type = Group.BUILTIN_GROUP
            group.save()

        # Create association table between data sources and groups
        DataSourceGroup.create_table()

        # add default to existing data source:
        default_org = Organization.get_by_id(1)
        default_group = Group.get(Group.name=="default")
        for ds in DataSource.all(default_org):
            DataSourceGroup.create(data_source=ds, group=default_group)

        # change the groups list on a user object to be an ids list
        migrate(
            migrator.rename_column('users', 'groups', 'old_groups'),
        )

        migrate(migrator.add_column('users', 'groups', User.groups))

        group_map = dict(map(lambda g: (g.name, g.id), Group.select()))
        user_map = defaultdict(list)
        for user in User.select(User, peewee.SQL('old_groups')):
            group_ids = [group_map[group] for group in user.old_groups]
            user.update_instance(groups=group_ids)

        migrate(migrator.drop_column('users', 'old_groups'))

    db.close_db(None)

コード例 #8
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        migrate(
            migrator.add_column('queries', 'schedule', models.Query.schedule),
        )

        db.database.execute_sql("UPDATE queries SET schedule = ttl WHERE ttl > 0;")

        migrate(
            migrator.drop_column('queries', 'ttl')
        )

    db.close_db(None)
コード例 #9
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        
        migrate(migrator.drop_column('users', 'status'))

    db.close_db(None)
コード例 #10
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        migrate(
            migrator.add_column('queries', 'schedule', models.Query.schedule),
        )

        db.database.execute_sql("UPDATE queries SET schedule = ttl WHERE ttl > 0;")

        migrate(
            migrator.drop_column('queries', 'ttl')
        )

    db.close_db(None)


コード例 #11
0
def backward():

    migrator = PostgresqlMigrator(models.DB)
    migrate(migrator.drop_column('blogpost', 'category'), )
    models.Comment.drop_table()
コード例 #12
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        
        migrate(migrator.drop_column('groups', 'countries'))

    db.close_db(None)
コード例 #13
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db
from redash import models

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():

        migrate(migrator.drop_column('users', 'parent_user_id'))

    db.close_db(None)
コード例 #14
0
ファイル: 0002.py プロジェクト: monisriz/DC_Blog
def backward():

    migrator = PostgresqlMigrator(models.DB)
    migrate(migrator.drop_column('comment', 'comment_author'), )
    models.Comment.drop_table()
コード例 #15
0
ファイル: 0002.py プロジェクト: egarcia410/blogApp
def backward():
    migrator = PostgresqlMigrator(models.DB)
    migrate(migrator.drop_column('post', 'author_id'), )
    models.Author.drop_table()
コード例 #16
0
from playhouse.migrate import PostgresqlMigrator, migrate

from redash.models import db

if __name__ == '__main__':
    db.connect_db()
    migrator = PostgresqlMigrator(db.database)

    with db.database.transaction():
        migrate(
            migrator.drop_column('groups', 'tables')
        )

    db.close_db(None)




コード例 #17
0
from playhouse.migrate import migrate, PostgresqlMigrator
from app.models import DATABASE
from app.qa.models import Reply
migrator = PostgresqlMigrator(DATABASE)

Reply.content.default = ''

migrate(
    migrator.drop_column('TBL_REPLY', Reply.content.db_column),
    migrator.add_column('TBL_REPLY', Reply.content.db_column, Reply.content))
コード例 #18
0
from playhouse.migrate import PostgresqlMigrator, migrate
from app.models import DATABASE
from app.qa.models import Question

migrator = PostgresqlMigrator(DATABASE)

Question.content.default = ''

contents = {}

for question in Question.select():
    contents[question.id] = question.content

print(contents)

migrate(
    migrator.drop_column('TBL_QUESTION', 'CONTENT'),
    migrator.add_column('TBL_QUESTION', Question.content.db_column, Question.content)
)

for question in Question.select():
    question.content = contents[question.id]
    question.save()