使用Flask-migrate遇到问题解决记录

我的Flask应用使用了Flask-migrate来管理数据库,今天在一个旧表里添加了一个ForignKey,flask db migrate正常,但在flask db upgrade的时候报错“ERROR [root] Error: No support for ALTER of constraints in SQLite dialect”。

上网查找解决方法,发现一个方法,在migrations的文件夹中对alembic的config需要做些改变,在run_migrations_offline和run_migrations_online函数的contex.configure中添加render_as_batch=True的参数,如下所示:

    context.configure(
        url=url, target_metadata=target_metadata, literal_binds=True,
            render_as_batch=True,
    )

        context.configure(
            connection=connection,
            target_metadata=target_metadata,
            process_revision_directives=process_revision_directives,
            render_as_batch=True,
            **current_app.extensions['migrate'].configure_args
        )

完成后把之前migrate生成的脚本删掉,重新migrate一次。但在upgrade的时候依然报错,这次报错内容是“ValueError: Constraint must have a name”。再经过stack overflow的帮助,在migrate生成的脚本中把

batch_op.create_foreign_key(None, 'users', ['creator_id'], ['id'])
#变为
batch_op.create_foreign_key('creator_id', 'users', ['creator_id'], ['id'])

问题得到解决。

转载于:https://my.oschina.net/pzzpan/blog/3028470

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值