Использовали ли вы миграции для создания своей базы данных?Если это так, то все, что вам нужно сделать, чтобы изменить базу данных, это создать миграцию, которая добавляет / удаляет / изменяет таблицу в базе данных.Например:
class AddMyColumnToMyTable < ActiveRecord::Migration
def self.up
add_column :table, :my_column, :string
end
def self.down
remove_column :table, :my_column
end
end
Затем, чтобы добавить / удалить данные, вы создаете миграцию данных следующим образом:
class AddDataToMyTable < ActiveRecord::Migration
def self.up
tables = Table.all
tables.each do |table|
table.my_column = 'new value' # Put more meaningful data population here
table.save!
end
end
def self.down
tables = Table.all
tables.each do |table|
table.my_column = nil
table.save!
end
end
end
Миграция данных может быть настолько простой или сложной, насколько вы этого хотите.быть.Миграция данных - не обязательно лучший способ заполнить вашу базу данных во всех случаях, но для простых случаев они работают действительно хорошо.(Не забудьте обновить любые модели с соответствующими отношениями!)
Если вы не создали свою базу данных с помощью миграций, то изменение данных для отражения обновлений в базе данных может быть выполнено только путем прямого манипулированиябаза данных через SQL.Манипуляции с помощью SQL всегда доступны в приложении на Rails, но миграции предоставляют явные преимущества.Они дают вам возможность фиксировать или откатывать изменения в базе данных структура , а не только данные .И миграция делает работу SQL для вас.