execute <<-SQL
commit
reindex database ActiveRecord::Base.configurations[Rails.env]['database']
SQL
显然这不起作用,但你明白了。我什至不知道上面的代码结构叫什么去查。
Postgres 不允许在事务中使用 db reindex,所以我希望上述 hack 能够奏效,因为在 Rails 4 之前似乎没有办法禁用事务
UPDATE
所以上面没有工作,但这个黑客做到了:
# force a reindex after we switched all those columns to citext
execute "commit;"
execute "reindex database #{ActiveRecord::Base.configurations[Rails.env]['database']} force;"