Лучшая практика при использовании seed.rb - PullRequest
4 голосов
/ 20 апреля 2011

У меня возникают трудности с пониманием того, как использовать скрипт seed.rb в рельсах.

До сих пор я использовал его для заполнения своей базы данных каждый раз, когда развертываю свое приложение.

Вот так.

seed.rb

["Video", "Tv"].each do |thing|
  Category.create(name: thing)
end

category.rb

class Category < ActiveRecord::Base
  validates_uniqueness_of :name
end

Сценарий теперь можно запускать при каждом развертывании или использовании. Любой из команды разработчиков теперь может добавить свою собственную категорию, не беспокоясь о дублировании.

Вот так.

Человек один

  • Добавление категории Table к seed.rb.
  • Фиксация и толчок к мастеру.

Лицо два

  • Pull master.
  • Запустите rake db:migrate и rake db:seed, чтобы убедиться, что локальная база данных обновлена.
  • Развертывание приложения на рабочем сервере. rake db:seed выполняется на сервере для обеспечения актуальности базы данных.

Хорошо ли этот рабочий процесс, если нет, куда мне поместить новые данные, чтобы у каждого разработчика была актуальная база данных?

1 Ответ

5 голосов
/ 20 апреля 2011

Я бы порекомендовал написать ваше семя, чтобы его можно было запускать более одного раза, не пытаясь создать дублирующиеся категории ...

["Video", "Tv"].each do |thing|
  Category.find_or_create_by_name(thing)
end
...