项目创建后,针对表结构更改,可以使用Flask-Migrate来解决。Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。
1 | pip install Flask – Migrate |
1 2 3 4 5 6 7 8 9 10 11 12 13 | from app import create_app , db from app . models import Users , Users_detail #注册数据库模型 from flask_script import Manager , Shell from flask_migrate import Migrate , MigrateCommand #载入migrate扩展 app = create_app ( ‘default’ ) manager = Manager ( app ) migrate = Migrate ( app , db ) #注册migrate到flask manager . add_command ( ‘db’ , MigrateCommand ) #在终端环境下添加一个db命令 if __name__ == ‘__main__’ : manager . run ( ) |
1 | python manage . py db init |
这里的 init 只需要执行一次,以后的修改都不用执行了。同时,创建一个migrations文件夹,里面存放了所有迁移脚本。
在Alembic,数据库迁移工作由迁移脚本完成。这个脚本有两个函数,分别叫做upgrade()和downgrade()。upgrade()函数实施数据库更改,是迁移的一部分,downgrade()函数则删除它们。通过添加和删除数据库变化的能力,Alembic可以重新配置数据库从历史记录中的任何时间点。
Alembic迁移可以分别使用revision和migrate命令手动或自动创建。手动迁移通过由开发人员使用Alembic的Operations对象指令实现的空upgrade()和downgrade()函数创建迁移框架脚本。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为upgrade()和downgrade()生成代码。
1 | python manage . py db migrate |
一旦迁移脚本被审查且接受,就可以使用db upgrade命令更新到数据库中:
1 | python manage . py db upgrade |
文章转载来自:trustauth.cn