示例#1
0
def Migrator():
    if config.DATABASE['BACKEND'] == "sqlite":
        return migrate.SqliteMigrator(models.database)
    elif config.DATABASE['BACKEND'] == "mysql":
        return migrate.MySQLMigrator(models.database)
    else:
        raise ValueError(
            'migrations are not supported for DB backend: {}'.format(
                config.DATABASE['BACKEND']))
示例#2
0
def _handle_migrations(db, migrations, current_migrations):
    migrator = migrate.SqliteMigrator(db)
    for migration_name, migration_fn in migrations:
        if migration_name in current_migrations:
            continue
        logger.info('Running migration {}', migration_name)
        with db.atomic():
            migration_fn(migrator)
            _record_migration(db, migration_name)
示例#3
0
def main():
    parser = argparse.ArgumentParser(
        description="Apply a named migration to the astrobotany database")
    parser.add_argument("migration")
    parser.add_argument("--db", default=settings.db)
    args = parser.parse_args()

    db = init_db(args.db)
    migrator = migrate.SqliteMigrator(db)

    print(f"Running migration {args.migration}...")
    MIGRATIONS[args.migration](migrator)
    print(f"Success!")
示例#4
0
def update_db():
    import playhouse.migrate as playhouse_migrate

    db_migrate = peewee.SqliteDatabase(db_filename,
                                       pragmas={
                                           'journal_mode': 'wal',
                                           'cache_size': 64,
                                           'foreign_keys': 0,
                                           'ignore_check_constraints': 0,
                                           'synchronous': 0
                                       })
    migrator = playhouse_migrate.SqliteMigrator(db_migrate)
    try:
        playhouse_migrate.migrate(
            migrator.add_column('RpProfile', 'show_link',
                                peewee.BooleanField(default=0)), )
    except Exception as e:
        print(e)
示例#5
0
import copy
import datetime
from playhouse.sqliteq import SqliteQueueDatabase
import warnings

import textwrap

__version__ = '0.0.1'

# options
data_root = os.path.join('..', 'data')
db_name = 'project_sweeps.db'
db = SqliteQueueDatabase(os.path.join(data_root, db_name), autoconnect=True)
VERBOSE_RUN = True

migrator = migrate.SqliteMigrator(db)

type_to_field = {
    int: peewee.IntegerField,
    float: peewee.FloatField,
    bool: peewee.BooleanField,
    str: peewee.CharField,
}

try:
    introspected_models = reflection.Introspector.from_database(db)\
        .generate_models(literal_column_names=True)
except:  # TODO: determine what errors to catch??
    introspected_models = {}

示例#6
0
import sys
import peewee as pw
from playhouse import migrate as pw_migrate
import logging
import datetime
from .models import db, all_models, Migration
from .store import FileStore

schema_version = 4

lg = logging.getLogger('xiami.db')

migrator = pw_migrate.SqliteMigrator(db)


def table_exists(db, name):
    """
    vscode python syntax analyzer thinks that db.table_exists will always raise NotImplementedError,
    thus code below are seen as unreachable and painted grey,
    this function is an ugly fix for this behavior.
    """
    try:
        return db.table_exists(name)
    except NotImplementedError:
        pass


def migrate(fs: FileStore):
    if table_exists(db, 'song'):
        # table 'song' exists means schema_version >= 2
        if table_exists(db, 'migration'):
示例#7
0
文件: migrate.py 项目: zhp1254/candy
from playhouse import migrate
import jwt

import orm

migrator = migrate.SqliteMigrator(orm.db)

migrate.migrate(
    migrator.add_column('user', 'expires', migrate.IntegerField(default=0)),
    migrator.add_column('user', 'uid', migrate.IntegerField(null=True)),
)

for user in orm.User.select():
    payload = jwt.decode(user.token, verify=False)
    user.expires = payload['exp']
    user.uid = payload['id']
    user.save()
示例#8
0
def createMigrator(dbFile):
    """
    Create migrator to "dbFile" database file
    """
    my_db = readPlayHouseDatabase(dbFile)
    return mgt.SqliteMigrator(my_db)