Создайте миграцию alembi c для создания схемы для version_table_schema - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу использовать alembi c для управления моей базой данных в рамках одной PostgreSQL схемы с именем foo. Для автоматического c развертывания новых сред я хочу, чтобы alembi c создал схему:

op.execute("create schema foo")

Я также хочу иметь таблицу alembic_version в этой схеме, используя version_table_schema='foo' для context.configure в env.py. Тем не менее, я столкнулся с некоторой ситуацией уловки 22, поскольку схема еще не создана, и alembi c не может проверить, в какой версии она находится.

Нет ли способа использовать version_table_schema kwarg без ручного вмешательства ? мне нужно иметь отдельную папку env.py и версии для создания схемы?

1 Ответ

0 голосов
/ 07 марта 2020

вы можете создать схему в env.py следующим образом:

    with connectable.connect() as connection:
        context.configure(
            connection=connection,
            target_metadata=target_metadata,
            include_schemas=True,
            version_table_schema='foo'
        )

        connection.execute('CREATE SCHEMA IF NOT EXISTS foo')

        with context.begin_transaction():
            context.run_migrations()
...