Скрипт фляги: способ вызова команд менеджера из других команд менеджера

Я пытаюсь выяснить, есть ли способ '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.
        #...

Я нахожусь в моих начальных шагах в программировании, и высоко ценится другой, более эффективный мыслительный процесс, который может быть средством достижения той же цели, как описано выше.

0 ответов

Другие вопросы по тегам