项目创建后,针对表结构更改,可以使用Flask-Migrate来解决。Flask-Migrate插件是基于Alembic,Alembic是由大名鼎鼎的SQLAlchemy作者开发数据迁移工具。
安装
1
|
pip
install
Flask
-
Migrate
|
添加Migrate相关的Command
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
|
Flask-Migrate 介绍参见: https://flask-migrate.readthedocs.io/en/latest/
收 藏
转载请注明:成长的对话 » flask-migrate 管理升级迁移数据库