Недавно я внес некоторые изменения в свои модели в своем проекте Flask. Я попытался применить эти изменения к моей БД Postgres, но скрипт, похоже, не имеет никакого эффекта. Когда я запускаю обновление, он говорит

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> ba60ca569e9f, empty message

А в БД ничего не меняется. Я удалил базу данных и воссоздал ее, и все равно ничего не произошло. Что происходит не так?

0
WarSame 5 Ноя 2019 в 23:26

1 ответ

Context impl SQLiteImpl. — сильный намек. Мой URI БД определяется SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI') or 'sqlite:///'. Когда я запускал свой проект в своей среде создания Docker, он работал, потому что DATABASE_URI правильно устанавливался в Dockerfile. Когда я запускал его в своей локальной среде, он не работал. Я мог бы запустить его на своем серверном контейнере, и он должен был бы работать.

Я исправил это, правильно установив для моего DATABASE_URI значение export DATABASE_URI=postgres://{USERNAME}:{PASSWORD}@127.0.0.1:5432/debateit. Это позволило моей локальной среде подключаться к базе данных Postgres, а не к локальному SQLite.

0
WarSame 5 Ноя 2019 в 23:26