Моя проблема заключается в том, что когда я запускаю рефлексы db makemigrations , Alembic включает в себя все таблицы, которые уже существуют в базе данных, даже если они не определены как модели в моем применении. Модели, объявленные с помощью rx.model , и, чтобы игнорируют любые существующие таблицы .
Я видел, что алембик может быть настроен из Env.py , но когда я тестирую с рефлексом, он, похоже, не выполняет ни одного кода. Он выполняет код, когда я запускаю команды Alembic.
Код: Выделить всё
from logging.config import fileConfig
from sqlalchemy import engine_from_config
from sqlalchemy import pool
from alembic import context
from reflex.model import Model
from agendaReflex.models.user.model import User
config = context.config
if config.config_file_name is not None:
fileConfig(config.config_file_name)
target_metadata = Model.metadata
ALLOWED_TABLES = Model.metadata.tables.keys()
print("ALLOWED TABLES:", ALLOWED_TABLES)
def include_object(obj, name, type\_, reflected, compare_to):
return name in ALLOWED_TABLES
Код: Выделить всё
alembic revision --autogenerate -m "init"Я получаю:
Код: Выделить всё
ALLOWED_TABLES: dict_keys(\['USERS_NUE'\])
INFO \[alembic.runtime.migration\] Context impl PostgresqlImpl.
INFO \[alembic.runtime.migration\] Will assume transactional DDL.
Included table: USERS_NUE
INFO \[alembic.autogenerate.compare\] Detected added table 'USERS_NUE'
INFO \[alembic.ddl.postgresql\] Detected sequence named 'empleados_id_seq' as owned by integer column 'empleados(id)', assuming SERIAL and omitting
Excluded table: empleados
Код: Выделить всё
reflex db makemigrations -m "init"Я Poluчaю:
Миграция без моих моделей и со всеми моими таблицами базы данных. воссоздать таблицы, которые уже существуют в базе данных?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -tables-in
Мобильная версия