flask-migrate不将更改应用于models.py中的数据库模式

时间:2019-07-18 16:24:06

标签: python flask flask-sqlalchemy flask-migrate

问题: 使用命令flask db migrateflask db upgrade似乎无法成功更新数据库。

项目: Flask应用程序(基本上是使用应用程序工厂根据大型教程建模的); MySQL; Ubuntu

说明: 在我的models.py文件中,我用db.Column(db.String(240), index=True, nullable=True)声明了一个列/字段。将数据添加到数据库时(我之前使用过flask db init),该字段的240个长度限制太小。

我将models.py更改为db.Text,并删除了index=True以留出更多空间。然后,我运行了flask db migrateflask db upgrade;修订脚本的生成没有明显错误。

我重新运行了数据提取/收集脚本,该脚本填充了我的数据库,并出现了相同的错误(“数据对于列“ myColumn”来说太长了。”)指示从String(240)更改为列- >文本不成功。

我检查了flask-migrate生成的最新脚本:

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_index('ix_MYTABLE_myColumn', table_name='MYTABLE')
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_index('ix_MYTABLE_myColumn', 'MYTABLE', ['myColumn'], unique=False)
    # ### end Alembic commands ###

看着这个脚本,似乎flask-migrate仅占我删除index=True的原因,而不是从String(240)->文本进行的更改。

有什么想法可能会这样吗?到目前为止,这使我无法成功使用该工具。

0 个答案:

没有答案