2010-03-04 3 views
0

У меня есть миграция, которая добавляет триггеры MySQL через вызов метода ActiveRecord :: Base.connection() «execute». Он отлично работает, за исключением того, что версия схемы не обновляется. Я подозреваю, что это связано с тем, что структура БД сама по себе не изменяется (без столбцов и обновлений таблиц).Как обновить версию схемы вручную в RoR?

Есть ли способ принудительно обновить версию схемы в моей миграции?

+0

Проблема, кажется, лежит где-то в действиях, выполненных в процессе миграции. Мое первоначальное предположение о структуре db неверно. – msorc

+0

Был установлен оператор set autocommit = 0, который каким-то образом предотвратил изменение версии. – msorc

ответ

0

На самом деле я думаю, что это должно быть обновление версии файла schema.rb на основе моих наблюдений за тем, как определена задача :migrate.

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?