flask数据库迁移

一、第三方库安装

1. 【pip3 install flask-script】

安装项目管理包  flask-script

2. 【pip3 install flask-migrate】

安装数据迁移包  flask_migrate

二、导入包

1. 导入包

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand

2. 创建管理者并托管命令

# 创建Manager对象并指定要管理的app

manager = Manager(app)

# 创建Migrate对象,并指定关联的app和db
migrate = Migrate(app,db)

# 给manager添加数据库迁移命令,具体操作由MigrateCommand来提供,在终端通过指令实现数据迁移工作
manager.add_command('db',MigrateCommand)

# 导入包
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand

app = Flask(__name__)
# 配置mysql数据库
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/flask' # flask为数据库名

# 指定不需要信号追踪
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 执行完增删改查自动提交到数据库
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True 

# 启动调试模式
app.config['DEBUG'] = True

# 创建SQLAlchemy的实例
db = SQLAlchemy(app)

# 创建Manager对象,并指定要管理的app
manager = Manager(app)

#创建Migrate对象,并指定关联的app和db
migrate = Migrate(app,db)

#为manager增加数据库的迁移指令
#为manager增加一个子命令-db(自定义),具体操作由MigrateCommand来提供
manager.add_command('db',MigrateCommand)

3. 替换app.run()

# app.run(host='127.0.0.1',port=8088)

manager.run()

4. python3 run.py

终端启动服务:【python3 run.py】

执行py文件

启动服务【 python3 run.py runserver --host 0.0.0.0 --port 5000】:

正常启动服务

四、数据迁移操作

1. 【python3 run.py db init】

做一些项目和数据库的初始化操作,一个项目中init只执行一次即可

自动生成migrations文件夹

2. 【python3 run01.py db migrate】

实体类 -------迁移到-----------》 migrations中间文件

将编辑好的实体类生成中间文件并保存在migrations文件夹中

若实体类发生更改,则生成中间文件;若实体类不发生更改,则不生成中间文件

生成migrations中间文件

3. python3 run01.py db upgrade

migrations中间文件 -------------迁移到--------------》数据库

将中间文件映射回数据库

如果数据中存在表,则更新;

如果数据库不存在表,则创建

猜你喜欢

转载自blog.csdn.net/m0_37605642/article/details/90608198