在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库。仅当数据库表不存在时, Flask-SQLAlchemy 才会根据模型进行创建。因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据。
更新表的更好方法是使用数据库迁移框架。源码版本控制工具可以跟踪源码文件的变化,类似地,数据库迁移框架能跟踪数据库模式的变化,然后增量式的把变化应用到数据库中。SQLAlchemy 的主力开发人员编写了一个迁移框架,称为 Alembic( https://alembic.readthedocs.org/en/latest/index.html)。除了直接使用 Alembic 之外, Flask 程序还可使用 Flask-Migrate( http://flask-migrate.readthedocs.org/en/latest/)扩展。这个扩展对 Alembic 做了轻量级包装,并集成到 Flask-Script 中,所有操作都通过 Flask-Script 命令完成。
1 创建迁移仓库
首先,我们要在虚拟环境中安装 Flask-Migrate:
(venv) $ pip install flask-migrate
这个扩展的初始化方法如下 配置 Flask-Migrate