Я пытаюсь использовать флягу, SQLAlchemy и flask_migrate ...Колба Migrate с использованием различных схем Postgres (__table_args__ = { 'схемы': 'test_schema']})
Но каждый раз бежать manage.py мигрируют , alembic всегда определяет мою модель как новую таблицу.
Я думаю, что я поставил table_args в моей модели, чтобы сохранить таблицу в другой Postgres схеме:
class Entry(db.Model):
__table_args__ = {'schema': app.config['BASE_SCH']}
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
slug = db.Column(db.String(100), unique=True)
body = db.Column(db.Text)
status = db.Column(db.SmallInteger, default=STATUS_PUBLIC)
created_timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
modified_timestamp = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)
Если я, чтобы удалить table_args линию моей модели, колба мигрирует работает должным образом. Хранение таблицы в схеме puclic postgres.
Итак, как я могу использовать разные схемы таблиц postgres с флягой?
Спасибо!
Вы проверили сгенерированный сценарий миграции? Я предполагаю, что отсутствует «схема», может быть, если вы добавите ее вручную, все будет работать на вас. – Miguel
Привет @Miguel, спасибо за ваш комментарий ... В сценарии миграции есть определение схемы в конце каждого блока создания таблицы. Я подозреваю, что, возможно, alembic не сможет распознать во время миграции различные схемы таблиц (postgres). –
У меня есть одна и та же проблема - есть модель, которая не входит в схему по умолчанию, начальная миграция выглядит хорошо (имеет указанную схему), и ее запуск создает таблицу в правильной схеме. Но следующий вызов 'flask db migrate' создает новую миграцию, которая является точным дубликатом первого, например, Alembic не видит, что таблица уже существует в БД. –