我正在编写一个使用flask-SQLAlchemy和flask-Migrate的flask应用程序。生产具有PostgreSQL数据库,但是对于开发,我希望使用SQLite而不是必须在开发计算机上安装完整的PostgreSQL。
我按照in its docs的说明设置了flask-Migrate。我不禁注意到,当我在开发箱上运行flask db migrate
时,这些是写到控制台的前两行:
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
我的问题:这是否意味着生成的迁移脚本仅适用于SQLite?
我本来不会,因为您应该将脚本提交到版本控制(在手动检查后),然后将其用于生产中的迁移。 flask-Migrate的作者本人也承认SQLAlchemy的优点之一是您可以在开发和生产中使用其他数据库引擎(请参见his blog post)。但是,为什么它告诉我这些假设呢?有没有办法告诉它不要使用特定的数据库引擎?