I am writing a Flask application that uses Flask-SQLAlchemy and Flask-Migrate. Production has a PostgreSQL database, but for development, I was hoping to use SQLite instead of having to install full PostgreSQL on my development machine.
I set up Flask-Migrate as described in its docs. I can't help but notice, when I run flask db migrate
on the dev box, these are the first two lines written to console:
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
My question: Does this mean that the generated migration script is only suitable for SQLite?
I would have expected not, since you're supposed to commit the script to version control (after you give it a manual inspection) and use it for migration in production. And the author of Flask-Migrate himself admits one of the benefits of SQLAlchemy is you can use a different database engine in development and production (see his blog post). But then, why is it telling me about these assumptions? Is there a way to tell it not to assume a specific database engine?