Привет, у меня проблема миграции рельсов:
Когда я запускаю миграцию следующим образом:
class RenameColumn < ActiveRecord::Migration
def change
rename_column :users, :hotel_stars, :rating_stars
rename_column :users, :restaurant_stars, :price_stars
end
end
и выполняю rake db: migrate, она работает нормально.Столбцы переименованы, и данные этих столбцов находятся там.Но когда я затем делаю грабли db: drop, create, migrate, столбцы переименовываются, и данные этих столбцов исчезают ... (Один из моих файлов миграции заполняет базу данных, а также заполняет эти два столбца, прежде чем они будут переименованы)
В чем здесь проблема?
Еще один вопрос: я знаю, что не стоит менять старые миграционные файлы, но это нормально, когда я запускаю rake db: drop db: create и db: мигрировать позже - или это вызовет проблемы?
Порядок моих файлов миграции следующий:
add_devise_to_users -> создает таблицу users
add_columns_to_default_user -> добавляет столбцыи обновляет всю таблицу
class AddColumnsToDefaultUser < ActiveRecord::Migration
def change
add_column :users, :name, :string
add_column :users, :dob, :date
add_column :users, :address, :string
add_column :users, :hotel_stars, :integer
add_column :users, :restaurant_stars, :integer
add_column :users, :profile_picture_url, :string
add_column :users, :selected_car, :integer
User.reset_column_information
User.find(1).update_attributes!( :name => 'Alexander MacDonald', :dob => '1984-08-20', :address => '900 Highschool Way, Mountain View, CA 94041', :hotel_stars => '3', :restaurant_stars => '2', :profile_picture_url => 'user1.png', :selected_car => 1)
end
end
, а затем переименовывает_column
class RenameColumn < ActiveRecord::Migration
def change
rename_column :users, :hotel_stars, :rating_stars
rename_column :users, :restaurant_stars, :price_stars
end
end