Я новичок в Ruby on Rails и Datamapper. Может кто-нибудь, пожалуйста, скажите мне, в чем разница между rake db:autoupgrade
и rake db:automigrate
в datamapper. Потому что в моем приложении я использовал модель А и модель B следующим образом:разница между рейком db: autoupgrade и rake db: automigrate
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
никаких изменений не происходит в таблицу в базе данных, но при этом rake db:automigrate
следующая ошибка Прибытие:
cannot delete or update a parent row: a foreign key constraint fails
Проблема решена сейчас. Сначала я беру mysql-дамп этой таблицы. Затем я удалил таблицу и изменил это поле в файле дампа, изменив его на deafult null. Затем я сделал rake db: autoupgrade и снова импортировал измененную таблицу dump в базу данных. – Joy