flask - python manage.py db upgrade 语句不起作用
ringa_lee
ringa_lee 2017-04-17 13:58:26
0
3
1015

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

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

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
洪涛

資料庫遷移一般分為兩步驟

  • 產生遷移的腳本
  • 運行腳本,更改資料庫

upgrade 之前,你需要 migrate

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

阿神

我遇到的問題是,更改了已有的欄位類型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 ###
伊谢尔伦

題主的問題好像已經超越了原書的範圍了。

第一次輸入python hello.py db upgrade第一次相當於db.creat_all(),以後再輸入python hello.py db upgrade才是更新資料庫。而題主已經是做了第一步,然後現在嘗試更新失敗。

所以問題應該是出現在更新資料庫這一步驟上面。貼出你是如何後​​續修改資料庫才能繼續分析問題出在哪裡。
我也是目前在學,不知道這麼理解是否正確。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板