Подтвердить что ты не робот

Создавать файл семян из данных уже в базе данных

Я использую Rails 3.0.3 и имею данные для таблицы "категории" уже в базе данных, но хочу создать из нее семенный файл. Есть ли какая-либо задача rake, которая будет генерировать для меня формат seeds.rb из этой таблицы?

4b9b3361

Ответ 2

Не уверен в каких-либо существующих задачах rake, но вы можете попробовать запустить что-то вроде этого в консоли rails и вставить результаты в файл seeds.rb

( предупреждение: грязно и непроверено)

c = Category.all

c.each do |cat|
  puts "Category.create(:name => '#{cat.name}')"
end

Отрегулируйте любые дополнительные поля, которые у вас могут быть.

Надеюсь, что это поможет.

Ответ 3

Я использовал YamlDb для вывода данных из моей разработки db, а затем загрузил их на другой сервер. Он выгружает данные в файл Yaml, который будет использоваться в любое время, когда вы хотите использовать db: load, чтобы направить его на любой другой сервер db.

https://github.com/ludicast/yaml_db

Ответ 4

Старый вопрос, у меня есть новый, основанный на ответе @Brian.

Если вы хотите сохранить всю строку следующим образом:

seedfile = File.open('db/seeds.rb', 'a')

c = Category.all

c.each do |cat|
  seedfile.write "Category.create(#{cat.attributes})\n"
end

seedfile.close

Если вы хотите только написать некоторые атрибуты, измените строку записи на следующее:

seedfile.write "Category.create(#{cat.attributes.slice('attr1', 'attr2', ...})\n"

Или, если вы хотите, чтобы все атрибуты, кроме некоторых, например, отметки времени:

seedfile.write "Category.create(#{cat.attributes.except('created_at', 'updated_at')})\n"