【发布时间】:2009-09-08 18:50:23
【问题描述】:
我正在从 OpenCongress 运行一些奇怪的 Postgres 迁移代码,我收到了这个错误:
RuntimeError: ERROR C25001 MVACUUM cannot run inside a transaction block
Fxact.c L2649 RPreventTransactionChain: VACUUM FULL ANALYZE;
所以我想尝试在不被事务包裹的情况下运行它。
【问题讨论】:
-
请详细说明您正在运行的迁移、您正在使用的数据库以及哪个适配器,以防它不是默认的 mysql/sqlite 适配器。这样我认为你的问题会得到一个更有用的答案。
-
抱歉,刚刚看到您使用的是 Postgres。
-
在这个特定迁移的情况下,我发现
VACUUM命令并不是真正必要的(它只进行垃圾收集),因此删除该调用有效,但我仍然很好奇知道如何指示 Rails 在没有事务的情况下运行迁移。
标签: ruby-on-rails database postgresql transactions migration