ホームページ  >  に質問  >  本文

flask - python manage.py db upgrade 语句不起作用

最近在学Flask,书籍是《Flask.Web.Development》,其中数据库迁移工具使用的是Flask-Migrate,书中提到创建迁移脚本后更新数据库使用python manage.py db upgrade就可以更新数据库,但是我在使用过程中模型修改后使用上述命令并不起作用,每次都需要删除所有表然后重建,不知道使用过程中在哪一步出错了?

可以参考这个文章,Flask Web Development —— 数据库(下)
就是翻译我提到的书籍;第一步和第二步都已经做了,按照书中所说,当模型更改的时候只要执行更新语句,数据库对表进行更新而不会删除表中的数据,但是现在不起作用,比如我模型增加了字段,执行语句后数据库表对应字段没有增加。

ringa_leeringa_lee2743日前954

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-04-17 14:00:26

    数据库迁移一般分为两步

    • 生成迁移的脚本
    • 运行脚本,更改数据库

    upgrade 之前,你需要 migrate

    修改了 model 之后
    需要先 python manage.py db migrate
    然后才 python manage.py db upgrade

    返事
    0
  • 阿神

    阿神2017-04-17 14:00:26

    我遇到的问题是,更改了已有的字段类型migrage之后。迁移脚本里没有任何的更改。求解。。。。

    # revision identifiers, used by Alembic.
    revision = '5588e49798f0'
    down_revision = '53ffda24441'
    
    from alembic import op
    import sqlalchemy as sa
    
    
    def upgrade():
        ### commands auto generated by Alembic - please adjust! ###
        pass
        ### end Alembic commands ###
    
    
    def downgrade():
        ### commands auto generated by Alembic - please adjust! ###
        pass
        ### end Alembic commands ###

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 14:00:26

    题主的问题好像已经超越了原书的范围了。

    第一次输入python hello.py db upgrade第一次相当于db.creat_all(),以后再输入python hello.py db upgrade才是更新数据库。而题主已经是做了第一步,然后现在尝试更新失败。

    所以问题应该是出现在更新数据库这一步上面。贴出你是如何后续修改数据库才能继续分析问题出在哪里。
    我也是目前在学,不知道如此理解是否正确。

    返事
    0
  • キャンセル返事