python(flask-migrate)"/>
python(flask-migrate)
flask-migrate简介
1. 什么是Flask-Migrate?
Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。
2. 为什么需要Flask-Migrate?
当需要修改数据库中的表结构时(添加一列数据),由于表的结构在创建时就已经定义好了,如果强行将表删除再新建表的话,原有数据就会丢失,所以想要直接通过代码来修改表结构会出现问题。为了解决这一问题,Flask-Migrate能够通过Flask-Scripts提供的命令对数据库中的表结构进行扩展
3. 如何安装Flask-Migrate?
在当前的虚拟环境中:
pip install flask-migrate
4. 如何配置?
app = Flask(__name__)app.config.from_envvar('config.py')
db = SQLAlchemy(app)
# 实例化Migrate对象,并将app和db对象传入Migrate对象中
migrate = Migrate(app, db)manager = Manager(app)
# 添加关于数据库迁移操作的命令
manager.add_command('db', MigrateCommand)
5. 如何使用?
- 1). 创建迁移仓库(migrations目录)
# 在开始对数据库操作之前需要创建迁移仓库
# 该操作只需执行一次即可
python script.py db init
- 2). 读取类的内容, 生成版本文件, 并没有真正在数据库中添加或删除;
# 生成的版本文件存放在migrations/versions目录中
# 创建的版本文件类似于sqlalchemy和mysql语句之间的另一种语言
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 版本号
- 9). 帮助,查找所有命令
python data_migrate.py db --help
更多推荐
python(flask-migrate)
发布评论