alembic格式,烘焙为alembic
Alembic是由sqlalchemy的作者开发的。用于迁移和映射ORM模型和数据库。alembic的用法在两个方面与git相似。首先,alembic的所有命令都是以alembic开头的。其次,alembic迁移文件也是受版本控制的。首先,用pip install alembic安装它。
要使用alembic,请执行以下操作:
1.定义自己的模型。
用alembic当仓库。Alembic init[仓库名,建议用alem BIC `。
3.更改配置文件:
Alembic.ini将数据库连接方法设置为` sqlalchemy.url。此连接方法与sqlalchemy的连接方法相同。
将模型的Base.metadata设置为alembic/env.py的target_metadata。但是,要导入“模型”,必须将包含模型的路径添加到该文件中。示例代码如下所示。
` ` ` python
导入系统、操作系统
sys . path . append(OS . path . dirname)OS . path . dirname(_ _ file _ _))
``````
4.在迁移脚本中生成ORM模型。“alembicrevision - autogenerate-m”消息.
5.将生成的脚本映射到数据库。` alembic升级头
6.从现在开始,修改模型后,重复步骤4和5。
7.注意:如果您尝试在终端上使用alembic,您必须首先进入安装了alembic的虚拟环境。否则,无法找到该命令。
# # #常用命令:
1.init:创建阿莱姆BIC仓库。
2.修订版:创建新版本文件。
3.-Autogenerate:自动修改当前模型并生成迁移脚本。
4.-m:通过指定这个参数,用户可以很容易地查看在这次迁移中所做的更改。
5.升级:当指定版本的迁移文件映射到数据库时,将执行版本文件中的升级功能。如果多个迁移脚本未映射到数据库,将会运行多个迁移脚本。
6.标题-显示最新迁移脚本的版本号。
7.降级:执行指定迁移文件版本的降级功能。
8.Header:指示头所指向的脚本文件的版本号。
9.历史记录:列出所有迁移的版本及其信息。
10.当前:显示当前数据库的版本号。
# # #经典错误:
1.失败:目标数据库。
*原因:主要是头像和现在的不一样。目前在头版后面。
解决方法:将当前移动到末尾。alembic升级头
2.故障:无法满足由“77525e61b 5b”标识的供应
*原因:保存在数据库中的版本号不在迁移脚本文件中。
*解决方法:删除数据库中alembic_version表中的数据,然后重新运行alembic upgrade head。
使用“更新标题”执行表中的现有错误:
*原因:该命令将运行所有迁移脚本,因为该表已经存在于数据库中。迁移脚本还包含创建表的代码。
*解决方法:(1)从版本中删除所有迁移文件。)2)修改迁移脚本创建的表的代码。
# flask_migrate
在实际的开发环境中,数据库更改会频繁发生。通常不是直接手工修改数据库,而是修改ORM对应的模型,然后将模型映射到数据库。在这一点上,如果有一个针对这种情况的特殊工具将非常有用,但flask-migrate正是这样做的。Flask-migrate封装并集成到基于Alembic的Flask中。实际上所有的迁移操作都是由Alembic完成的,它可以跟踪模型的变化,并将变化映射到数据库中。
# # #安装:
安装pip闪存迁移
Manage.py代码:
` ` ` python
从flask_script导入管理器
Main fromapp.pyimportapp
从外部导入数据库
从flask_migrate导入迁移,migrate命令
经理=经理(应用程序)
用于将app和db绑定到flask_migrate。
迁移(应用程序,数据库))。
将所有迁移子命令添加到数据库
manager.add_command(db ,MigrateCommand)).
if __name__==__main__ :
manager.run(
``````
### flask_migrate通用命令:
1.环境初始化:python manage.py db init
2.自动检测模型并生成迁移脚本:pythonmanage.pydbmigrate。
3.将迁移脚本映射到数据库:python manage.py db upgrade
4.进一步的命令:python manager . pydb-help