我需要使用db-migrate将索引添加到CREATE INDEX CONCURRENTLY
到Postgres数据库中。但是,默认情况下,db-migrate将所有迁移包装在事务中,并且尝试在事务内部创建并发索引会导致以下错误代码:
CREATE INDEX CONCURRENTLY cannot run inside a transaction block
作为db-migrate选项的一部分,我找不到任何方法来禁用事务,无论是CLI选项还是(最好是)作为迁移本身的配置指令。知道这是否可以实现吗?
答案 0 :(得分:0)
事实证明,可以使用--non-transactional
在命令行上解决此问题。阅读源代码后,我看到它设置了一个内部标记notransactions
,但我不清楚这是否可以作为迁移配置的一部分设置或必须在命令行中传递。