Разница между рейком db: автообновление и рейком db: автомиграция

Я новичок в Ruby on Rails и Datamapper. Может кто-нибудь, пожалуйста, скажите мне, в чем разница между rake db:autoupgrade а также rake db:automigrate в datamapper. Потому что в моем приложении я использовал модель A и модель B следующим образом:

 class A
    includes DataMapper::resource
    property :id, Serial
    belongs_to :B, :required=>true
  end

  class B
    includes DataMapper::resource
    property :id, Serial
    has n, :As
  end

Потом после смены :required => false в модели А при этом rake db:autoupgrade никаких изменений не происходит с таблицей A в базе данных, но при этом rake db:automigrate появляется следующая ошибка:

 cannot delete or update a parent row: a foreign key constraint fails

1 ответ

Если есть константа внешнего ключа, вы не можете удалить связанную таблицу. что еще вы можете сделать, это rake db:drop и создайте таблицу снова.

Другие вопросы по тегам