def init_database(db: PeeweeSession): log.info("Initializing the Database") with db.atomic(): db_proxy.create_tables(tables) log.info("Tables created. Setting migration level.") Migration.create(version=2) log.info("Migration level set.")
def init_db(db: directives.PeeweeSession, for_real: hug.types.smart_boolean = False): if not for_real: print('this will create the database (potentially destroying data), run with --for_real, if you are sure ' '*and* have a backup') sys.exit(1) else: with db.atomic(): try: migration = Migration.get() print(f'Migration level is already set to version {migration.version} - implying the db has already been ' f'initialized. Run command `run_migrations` instead.') sys.exit(1) except DatabaseError: init_database()
def migrate_db(db: PeeweeSession): with db.atomic() as txs: migrator = PostgresqlMigrator(db) try: migration = Migration.get() if migration.version < 1: # do everything for level 1 level_1(db, migration, migrator) if migration.version < 2: # do everything for level 1 level_2(db, migration, migrator) except ProgrammingError: log.exception('Error - Migrations table not found, please run init_db first!') txs.rollback() sys.exit(1)