Flask学习笔记-Flask-Migrate实现数据库迁移

我把它总的分为4步走分别是:安装、配置、创建(仓库、脚本)、更新如下

Flask-Migrate实现数据库迁移

一、 安装 Flask-Migrate

pip install flask-migrate

安装时如果出现ReadTimeoutError
可以参考:选择国内镜像

二、 配置 Flask-Migrate

from flask_migrate import Migrate, MigrateCommand


migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)

三、 创建(仓库、脚本)

创建 分为创建迁移仓库跟创建迁移脚本如下:

1.创建迁移仓库

python manage.py db init

其中manage.py 为你的启动程序文件

返回类似以下内容和目录中出现 migrations(存放迁移脚本) 文件夹就算是成功啦!
migrations

Creating directory /home/flask/flasky/migrations...done
Creating directory /home/flask/flasky/migrations/versions...done
Generating /home/flask/flasky/migrations/alembic.ini...done
Generating /home/flask/flasky/migrations/env.py...done
Generating /home/flask/flasky/migrations/env.pyc...done
Generating /home/flask/flasky/migrations/README...done
Generating /home/flask/flasky/migrations/script.py.mako...done
Please edit configuration/connection/logging settings in

2. 创建迁移脚本

python manage.py db migrate -m "initial migration"

-m后引号里面的内容为备注 可以根据自己的要求更改

返回类似以下内容则成功

INFO [alembic.migration] Context impl SQLiteImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.autogenerate] Detected added table 'roles'
INFO [alembic.autogenerate] Detected added table 'users'
INFO [alembic.autogenerate.compare] Detected added index
'ix_users_username' on '['username']'
Generating /home/flask/flasky/migrations/versions/1bc
594146bb5_initial_migration.py...done

五、更新数据库

python manage.py db upgrade

返回类似以下内容则成功

INFO [alembic.migration] Context impl SQLiteImpl.
INFO [alembic.migration] Will assume non-transactional DDL.
INFO [alembic.migration] Running upgrade None -> 1bc594146bb5, initial migration

结尾:作为一个萌新,自己的各方面能力都还不足,所以难免有出错,望大佬多加指正。如果这篇博客有帮到你或者觉得小7写得还可以的话,请给小7点个赞吧!每一个赞都是我努力前行的动力呀!谢谢啦!

发布了29 篇原创文章 · 获赞 19 · 访问量 1328

猜你喜欢

转载自blog.csdn.net/s1156605343/article/details/104247382