最近在学Flask,书籍是《Flask.Web.Development》,其中数据库迁移工具使用的是Flask-Migrate,书中提到创建迁移脚本后更新数据库使用python manage.py db upgrade就可以更新数据库,但是我在使用过程中模型修改后使用上述命令并不起作用,每次都需要删除所有表然后重建,不知道使用过程中在哪一步出错了?
可以参考这个文章,Flask Web Development —— 数据库(下)
就是翻译我提到的书籍;第一步和第二步都已经做了,按照书中所说,当模型更改的时候只要执行更新语句,数据库对表进行更新而不会删除表中的数据,但是现在不起作用,比如我模型增加了字段,执行语句后数据库表对应字段没有增加。
PHP中文网2017-04-17 14:00:26
資料庫遷移一般分為兩步驟
在 upgrade
之前,你需要 migrate
修改了 model
之後
需先 python manage.py db migrate
然後才 python manage.py db upgrade
阿神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 ###
伊谢尔伦2017-04-17 14:00:26
題主的問題好像已經超越了原書的範圍了。
第一次輸入python hello.py db upgrade第一次相當於db.creat_all(),以後再輸入python hello.py db upgrade才是更新資料庫。而題主已經是做了第一步,然後現在嘗試更新失敗。
所以問題應該是出現在更新資料庫這一步驟上面。貼出你是如何後續修改資料庫才能繼續分析問題出在哪裡。
我也是目前在學,不知道這麼理解是否正確。