【问题标题】:Disable wrapping migration in a transaction with Node db-migrate使用 Node db-migrate 在事务中禁用包装迁移
【发布时间】:2019-03-09 13:14:01
【问题描述】:

我需要使用db-migrate 将索引添加到带有CREATE INDEX CONCURRENTLY 的Postgres 数据库。但是,db-migrate 默认将所有迁移包装在一个事务中,并且尝试在事务中创建并发索引会导致此错误代码:

CREATE INDEX CONCURRENTLY cannot run inside a transaction block

我找不到任何方法来禁用事务作为 db-migrate 选项的一部分,无论是 CLI 选项还是(最好)作为迁移本身的配置指令。知道这是否可以实现吗?

【问题讨论】:

    标签: node.js postgresql transactions database-migration dbmigrate


    【解决方案1】:

    事实证明,这可以通过使用--non-transactional 在命令行上解决。阅读源代码,我可以看到这设置了一个名为 notransactions 的内部标志,但我不清楚这是否可以设置为迁移配置的一部分或必须在命令行上传递。

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2021-02-07
      • 2020-09-11
      • 2019-05-07
      • 1970-01-01
      • 2016-07-08
      • 2019-01-25
      • 2018-09-05
      • 2020-03-31
      相关资源
      最近更新 更多