python_arango_ogm.cli.pao_migrate
1import json 2import os 3import site 4import sys 5 6import typer 7from dotenv import load_dotenv 8 9from python_arango_ogm.db.pao_database import PAODatabase 10from python_arango_ogm.db.pao_migration_builder import PAOMigrationBuilder 11from python_arango_ogm.db.pao_migrator import PAOMigrator 12 13# print("Setting app root to ", os.getcwd()) 14app = typer.Typer() 15 16 17@app.command() 18def make_migrations(env_file: str = None): 19 """ 20 Make migrations from models 21 """ 22 app_root = get_app_root() 23 load_environment(env_file=env_file) 24 migration_builder = PAOMigrationBuilder(app_root) 25 migration_builder.create_model_migrations() 26 27 28@app.command() 29def new_migration(name: str, env_file: str = None): 30 """ 31 Make a new migration with a new number prefix and suffix of given name 32 33 @params: 34 name is the suffix of the migration 35 """ 36 app_root = get_app_root() 37 load_environment(env_file=env_file) 38 migration_builder = PAOMigrationBuilder(app_root) 39 migration_builder.create_blank_migration(name) 40 41 42@app.command() 43def migrate(clean: bool = False, env_file: str = None): 44 """ Runs all unapplied migrations. If clean is true, database will be deleted first. """ 45 app_root = get_app_root() 46 load_environment(env_file=env_file) 47 pao_db = PAODatabase(delete_db=clean) 48 migrator = PAOMigrator(pao_db, app_root) 49 migrator.apply_migrations() 50 51 52@app.command() 53def migrate_rollback(env_file: str = None): 54 """ Runs all unapplied migrations """ 55 app_root = get_app_root() 56 load_environment(env_file=env_file) 57 pao_db = PAODatabase() 58 migrator = PAOMigrator(pao_db, app_root) 59 migrator.migrate_down() 60 61 62@app.command() 63def list_migrations(env_file: str = None): 64 """ Runs all unapplied migrations """ 65 app_root = get_app_root() 66 load_environment(env_file=env_file) 67 pao_db = PAODatabase() 68 migrator = PAOMigrator(pao_db, app_root) 69 migrations = migrator.list_migrations() 70 print(json.dumps(migrations, indent=4)) 71 72 73def load_environment(env_file): 74 """ Load given environment file, if it exists. """ 75 if env_file: 76 load_dotenv(env_file) 77 78def get_app_root(): 79 app_root = os.getcwd() 80 if app_root not in sys.path: 81 site.addsitedir(app_root) 82 return app_root 83 84def run(): 85 app() 86 87 88if __name__ == "__main__": 89 run()
app =
<typer.main.Typer object>
@app.command()
def
make_migrations(env_file: str = None):
18@app.command() 19def make_migrations(env_file: str = None): 20 """ 21 Make migrations from models 22 """ 23 app_root = get_app_root() 24 load_environment(env_file=env_file) 25 migration_builder = PAOMigrationBuilder(app_root) 26 migration_builder.create_model_migrations()
Make migrations from models
@app.command()
def
new_migration(name: str, env_file: str = None):
29@app.command() 30def new_migration(name: str, env_file: str = None): 31 """ 32 Make a new migration with a new number prefix and suffix of given name 33 34 @params: 35 name is the suffix of the migration 36 """ 37 app_root = get_app_root() 38 load_environment(env_file=env_file) 39 migration_builder = PAOMigrationBuilder(app_root) 40 migration_builder.create_blank_migration(name)
Make a new migration with a new number prefix and suffix of given name
@params: name is the suffix of the migration
@app.command()
def
migrate(clean: bool = False, env_file: str = None):
43@app.command() 44def migrate(clean: bool = False, env_file: str = None): 45 """ Runs all unapplied migrations. If clean is true, database will be deleted first. """ 46 app_root = get_app_root() 47 load_environment(env_file=env_file) 48 pao_db = PAODatabase(delete_db=clean) 49 migrator = PAOMigrator(pao_db, app_root) 50 migrator.apply_migrations()
Runs all unapplied migrations. If clean is true, database will be deleted first.
@app.command()
def
migrate_rollback(env_file: str = None):
53@app.command() 54def migrate_rollback(env_file: str = None): 55 """ Runs all unapplied migrations """ 56 app_root = get_app_root() 57 load_environment(env_file=env_file) 58 pao_db = PAODatabase() 59 migrator = PAOMigrator(pao_db, app_root) 60 migrator.migrate_down()
Runs all unapplied migrations
@app.command()
def
list_migrations(env_file: str = None):
63@app.command() 64def list_migrations(env_file: str = None): 65 """ Runs all unapplied migrations """ 66 app_root = get_app_root() 67 load_environment(env_file=env_file) 68 pao_db = PAODatabase() 69 migrator = PAOMigrator(pao_db, app_root) 70 migrations = migrator.list_migrations() 71 print(json.dumps(migrations, indent=4))
Runs all unapplied migrations
def
load_environment(env_file):
74def load_environment(env_file): 75 """ Load given environment file, if it exists. """ 76 if env_file: 77 load_dotenv(env_file)
Load given environment file, if it exists.
def
get_app_root():
def
run():