2010-03-04 17 views
0

我有一個通過調用ActiveRecord :: Base.connection()方法「execute」向MySQL添加觸發器的遷移。它工作正常,除非架構版本沒有更新。我懷疑這是因爲DB結構本身沒有改變(沒有列和表更新)。如何在RoR中手動更新模式版本?

有沒有辦法在我的遷移中強制更新模式版本?

+0

這個問題似乎是在某個地方,在移民行動中。我對數據庫結構的最初假設是不正確的。 – msorc 2010-03-04 11:37:34

+0

有一個'set autocommit = 0'語句,它以某種方式阻止了版本的改變。 – msorc 2010-03-04 12:03:41

回答

0

其實我認爲這應該是基於我對:migrate任務如何定義的觀察來更新您的schema.rb文件版本。

task :migrate => :environment do 
    ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true 
    ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil) 
    Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby 
end 

如果它不更新,也許你的:schema_format是不是:ruby