flask-web

flask-migrate进行数据库迁移

2019-05-13  本文已影响0人  阿猹在路上

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库。仅当数据库表不存在时,Flask-SQLAlchemy 才会根据模型进行创建。因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据。更加好的表示方法就是利用数据库迁移框架

官方网址 https://flask-migrate.readthedocs.io/en/latest/

下面来运用 flask-migrate迁移框架

windows中安装该模块

pip install flask-migrate

(1)首先建立数据库迁移脚本(采用这个的话会和 create_all()一样,会删除表中的内容,但是下次更新的时候就可以不用重现创建了,在命令行窗口中采用)

flask db init

Creating directory /home/flask/flask1/migrations ... done Creating directory     /home/flask/flask1/migrations/versions ... done Generating     /home/flask/flask1/migrations/env.pyc ... done

运行成功之后会在的自己项目文档中生成一个 migrateions 脚本文件

(2)跟新数据表中的内容

1:迁移数据表,生成迁移脚本 (但是这个时候还没有修改保存到数据库当中)

flask db migrate

INFO [alembic.runtime.migration] Context impl MySQLImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.INFO [alembic.autogenerate.compare] Detected removed table u'sys_user'INFO [alembic.autogenerate.compare] Detected removed table u'sys_role_privilege'

(2)更新数据库内容

flask db upgrade

NFO [alembic.runtime.migration] Context impl MySQLImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.

上一篇 下一篇

猜你喜欢

热点阅读