美文网首页
Flask数据库迁移工具

Flask数据库迁移工具

作者: 冰西瓜大郎 | 来源:发表于2017-09-19 12:52 被阅读0次

    由于模型中经常会新加一行或几行column (比如用来保存账户的确认状态),此时要修改 models.py,并执行一次新数据库迁移(能够保存之前的数据),Flask-Migrate可以实现这个功能。

    from app import create_app, db  
    from flask_script import Manager, Shell  
    from flask_migrate import Migrate, MigrateCommand  
    app = create_app(os.getenv('FLASK_CONFIG') or 'default')  
    migrate = Migrate(app, db)  
    manager.add_command('db', MigrateCommand) 
    

    第一次使用:

    1.初始化:(venv)  python manage.py db init 这个命令会在项目下创建 migrations 文件夹,所有迁移脚本都存放其中。
    2.创建第一个版本:(venv) $ python manage.py db migrate -m "initial migration"  检查migrations\versions,会新建一个版本.py,检查里面表格及字段
    3.运行升级 (venv) $ python manage.py db upgrade,会把项目使用的数据库文件,更新为新的表格、字段,同时保留数据
    

    以上操作会在项目目录下生成一个migration目录,以及数据库中新增一张version表。

    后续数据库迁移:

    python manage.py db migrate
    python manage.py db upgrade
    

    遇到的问题:
    数据库无法迁移,报错如下:

    alembic.util.exc.CommandError: Can't locate revision identified by 'a570bb807bff
    

    问题原因:数据库版本对不上
    解决方案:删除数据库中的version表,删除migration目录
    来源:

    https://stackoverflow.com/questions/20973145/cannot-complete-flask-migration
    

    相关文章

      网友评论

          本文标题:Flask数据库迁移工具

          本文链接:https://www.haomeiwen.com/subject/wmuahxtx.html