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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...