Я пытаюсь обновить некоторые значения по умолчанию для новых столбцов, заданных в миграции. Однако я получаю сообщение об ошибке Postgres всякий раз, когда пытаюсь что-либо сделать с таблицей записей пользователей (кроме изменения ее структуры). Я использую Rails 3.0.7, ruby 1.9.2 и версию pg gem 0.11.0
Вот миграция:
def self.up
add_column :users, :state_machine, :string
add_column :users, :wizard_steps_completed, :integer, :default => "1"
add_column :users, :activated_at, :datetime
User.reset_column_information
User.all.each do |u|
u.update_attributes(:state_machine => "activated", :wizard_steps_completed => 3, :activated_at => u.created_at)
end
end
Столбцы добавляются без проблем. однако все изменения в существующих записях завершаются с ошибкой:
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== AddUserSignupInfo: migrating ==============================================
rake aborted!
An error has occurred, this and all later migrations canceled:
PGError: ERROR: current transaction is aborted, commands ignored until end of transaction block
: SELECT COUNT(*)
FROM pg_tables
WHERE tablename = 'users'
Если я попытаюсь обновить какую-либо запись, она работает, я могу только внести структурные изменения ...
Есть идеи?