[python]Flask-migrate简单入门

Flask-Migrate是用于处理SQLAlchemy 数据库迁移的扩展工具。当Model出现变更的时候,通过migrate去管理数据库变更。

Migrate主要有3个动作,init、migrate 和upgrade。

以下面的应用为例:

 1 from flask import Flask
 2 from flask_sqlalchemy import SQLAlchemy
 3 from flask_migrate import Migrate
 4 
 5 app = Flask(__name__)
 6 app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///app.db"
 7 
 8 db = SQLAlchemy(app)
 9 migrate = Migrate(app, db)
10 
11 # Model
12 class User(db.Model):
13     id = db.Column(db.Integer, primary_key=True)
14     name = db.Column(db.String(128))

注意事项:此处一下的命令需要在命令行中去运行,并且上面的程序,要命名为app.py才可正常执行否则会报以下错误,

1.  初始化

flask db init

这个命令会在当前目录下生成一个migrations文件夹。这个文件夹也需要和其他源文件一起,添加到版本控制。

[python]Flask-migrate简单入门_第1张图片

2. 生成最初的迁移

flask db migrate

此命令会在migrations下生成一个version文件夹,下面包含了对应版本的数据库操作py脚本。

由于migrate并不一定全部发现你对model的所有改动,因此生成的py脚本需要review, 有错的话则需要edit。

例如目前知道的,表名称表更,列名称变更,或给constraints命名等,migreate都不能发现的。更多限制细节见此:Alembic autogenerate documentation

[python]Flask-migrate简单入门_第2张图片

3. 数据库升级

flask db upgrade

最后一步。此命令相当于执行了version文件夹下的相应py版本,对数据库进行变更操作。

此后,对model有变更,只要重复migrate和upgrade操作即可。

查看帮助文档:

flask db --help

使用Flask-Script的命令调用,自行参考官方文档: Flask-Migrate Documentation

本文引用链接:[python]Flask-migrate简单入门 - oDoraemon - 博客园Flask-Migrate是用于处理SQLAlchemy 数据库迁移的扩展工具。当Model出现变更的时候,通过migrate去管理数据库变更。 Migrate主要有3个动作,init、migratehttps://www.cnblogs.com/oDoraemon/p/9206921.html

你可能感兴趣的:(开发相关,python,flask)