python-flask(五)-Flask-Migrate数据库迁移

1. 什么是Flask-Migrate?

Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。

2. 如何安装Flask-Migrate?

pip install flask-migrate

3. 如何配置?

app = Flask(__name__)

app.config.from_envvar('config.py')
db = SQLAlchemy(app) 

migrate = Migrate(app, db)

manager = Manager(app)
manager.add_command('db', MigrateCommand)

4. 如何使用?

  • 1). 创建迁移仓库(migrations目录)
python script.py  db init
  • 2). 读取类的内容, 生成版本文件, 并没有真正在数据库中添加或删除;
python  script.py  db migrate -m "版本名后缀"
  • 3). 在数据库中增删改, 也就是将迁移应用于数据库;
python script.py  db upgrade
  • 4). 检测是否成功?
mysql -uroot -pwestos
  • 5). 去查看改变的历史状态;
python script.py  db history
  • 6). 返回指定的版本状态;降级数据库,不指定版本则是最老版本
python script.py  db downgrade  base
  • 7). 显示当前版本
python data_migrate.py db current 
  • 8). 升级版本,不指定版本为最新版本
python data_migrate.py db upgrade 版本号
  • 7). 帮助,查找所有命令
python data_migrate.py db --help 

5.数据库迁移实验

设计结构:

|-- app
|   |-- forms.py
|   |-- __init__.py
|   |-- manageUtil
|   |   |-- database.py
|   |   `-- __pycache__
|   |       `-- database.cpython-36.pyc
|   |-- models.py
|   |-- __pycache__
|   |   |-- __init__.cpython-36.pyc
|   |   |-- models.cpython-36.pyc
|   |   `-- views.cpython-36.pyc
|   |-- static
|   |-- templates
|   |   `-- list.html
|   `-- views.py
|-- config.py
`-- manage.py

应用到上一篇文章的数据库里
在__init__.py文件中实例化Migrate对象

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_bootstrap import Bootstrap
import pymysql
from flask_script import  Manager
from flask_migrate import  Migrate

pymysql.install_as_MySQLdb()
app = Flask(__name__)
app.config.from_pyfile('../config.py')

db = SQLAlchemy(app)
bt = Bootstrap(app)
manager = Manager(app)
migrate = Migrate(app, db)

在manage.py文件中加入命令

from flask_migrate import MigrateCommand

from app import app, manager
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值