flask-migrate进行数据库迁移

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库。仅当数据库表不存在时,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.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容