Я идиот ... облажался с миграцией в Rails:
думая, что миграции будут работать как генераторы моделей (используя references:modelname
), я сделал следующее:
$ rails g migration add_event_to_photos references:event
, который создал миграцию
class AddEventToPhotos < ActiveRecord::Migration
def change
add_column :photos, :references, :event
end
end
И теперь в моей базе данных для разработки ( SQLite3 ) есть столбец references
типа event
в таблице photos
.
И в моем schema.rb есть строка посередине, говорящая:
# Could not dump table "photos" because of following StandardError
# Unknown type 'event' for column 'references'
rake db:rollback
бессилен против этого:
$ rake db:rollback
== AddEventToPhotos: reverting ===============================================
-- remove_column("photos", :references)
rake aborted!
An error has occurred, this and all later migrations canceled:
undefined method `to_sym' for nil:NilClass
Итак, как откатиться и сохранить мои данные разработки в базе данных? Я даже был бы рад погубить стол с фотографиями, если бы это был мой единственный выбор ... но я не хочу перестраивать все это. Что делать?
btw- для любого, кто читает это, собирается сделать ту же самую глупую ошибку ... не! Используйте правильный генератор миграции:
$ rails g migration add_event_to_photos event_id:integer