Скрипт фляги: способ вызова команд менеджера из других команд менеджера
Я пытаюсь выяснить, есть ли способ 'flask-scripty' для вызова команд менеджера, созданных с использованием manager.add_command
метод из другой команды менеджера.
Как и во фрагменте ниже, я хотел бы использовать команду deploy как одноразовую команду для выполнения миграции базы данных без необходимости явного запуска команды db в оболочке.
то есть, если я бежал развернуть с -r
флаг, я надеюсь на сценарий, где я могу вызвать команду db(присоединена к MigrateCommand) внутри deploy
метод и повторно инициализировать базу данных имплицитно. В противном случае отсутствие -r
Флаг неявно подразумевал бы, что я вызываю команду db(присоединена к MigrateCommand) для обновления базы данных.
#... app initialization
manager.add_command('shell', Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)
@manager.command
def deploy(restart=False):
"""
restart flag resets the whole system
"""
if restart:
# kill all databases, rebuild them and prepare preliminary records
username = prompt(
'Admin_username',
None
)
password = prompt_pass(
'{CAUTION} Admin Password required:',
None
)
# use datastore to check if has highest permission levels, thn delete the db
# db.drop_all()
else:
# upgrade database models.
#...
Я нахожусь в моих начальных шагах в программировании, и высоко ценится другой, более эффективный мыслительный процесс, который может быть средством достижения той же цели, как описано выше.