资讯专栏INFORMATION COLUMN

Flask之扩展flask-migrate

Snailclimb / 648人阅读

摘要:一个用来做数据迁移的扩展,一般都是结合使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将更深层的写出来。

flask-migrate一个用来做数据迁移的falsk扩展,一般都是结合flask-sqlalchemy使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将flask-sqlalchemy更深层的写出来。
【config.py】

SQLALCHEMY_DATABASE_URI="mysql://root:mysql@127.0.0.1:3306/test"    //数据库连接

SQLALCHEMY_TRACK_MODIFICATIONS=False

【data_migrate.py】

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager    #这是一个做脚本调式的库,有时间我也会总结
from flask_migrate import Migrate,MigrateCommand

app = Flask(__name__)

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

migrate = Migrate(app, db)

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

class User(db.Model):    #创建一个模型类,用于做数据迁移
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32))
    
if __name__ == "__main__":
    manager.run()

【控制台测试】

>>>python data_migrate.py db init    //创建迁移存储库
>>>python data_migrate.py db migrate -m "版本名后缀"   //生成初始迁移
>>>python data_migrate.py db upgrade    //将迁移应用于数据库

//若有修改,可重复执行2/3这两条命令
>>>python 文件 db history    //显示整个历史版本记录
【其他命令】
python data_migrate.py db --help    //帮助,查找所有命令
python data_migrate.py db current    //显示当前版本
python data_migrate.py db upgrade 版本号    //升级版本,不指定版本为最新版本
python data_migrate.py db downgrade 版本号    //降级数据库,不指定版本则是最老版本

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42902.html

相关文章

  • Flask Web Development —— 数据库(下)

    摘要:命令需要注册回调函数来将对象添加到导入列表。创建迁移脚本在,数据库迁移工作由迁移脚本完成。函数实施数据库更改,是迁移的一部分,函数则删除它们。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为和生成代码。 9、数据库在视图函数中的使用 在前面章节描述的数据库操作是可以在视图函数中直接使用的。示例5-5展示的新版本主页实现了用户输入名字并保存到数据库中。 示例5-5. he...

    jone5679 评论0 收藏0
  • Flask Web Development —— 数据库(下)

    摘要:命令需要注册回调函数来将对象添加到导入列表。创建迁移脚本在,数据库迁移工作由迁移脚本完成。函数实施数据库更改,是迁移的一部分,函数则删除它们。另一方面,自动迁移通过寻找模型定义和数据库当前状态间的不同为和生成代码。 9、数据库在视图函数中的使用 在前面章节描述的数据库操作是可以在视图函数中直接使用的。示例5-5展示的新版本主页实现了用户输入名字并保存到数据库中。 示例5-5. he...

    fasss 评论0 收藏0
  • 7.ORM与SQLAlchemy (3) - flask-migrate数据库迁移

    摘要:听上去是不是很麻烦更糟糕的是,原先数据库的的数据也就没有了。此外,我们还将结合一起使用,简单来说让我们可以使用命令行去完成数据库迁移的操作。 在上一遍文章中,我们增加了两个模型Questions和Comments,并为Users增加了avatar_path这个字段,然后通过这段代码更新到数据库: with app.test_request_context(): db.drop_...

    wind3110991 评论0 收藏0
  • Flask Web Development —— 大型应用程序结构(下)

    摘要:单元测试这个应用非常小以至于不需要太多的测试,但是作为示例会在示例中展示两个简单的测试定义。示例单元测试编写好的测试使用的是来自于标准库中标准的包。为了运行单元测试,可以在脚本中增加一个自定义的命令。 4、启动脚本 顶层目录中的manage.py文件用于启动应用。这个脚本会在示例7-8中展示。 示例7-8. manage.py:启动脚本 #!/usr/bin/env python im...

    whidy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<