terça-feira, 8 de maio de 2012

Rails: Seed de acordo com o ambiente

No Rails, você pode configurar as seeds para executarem de forma diferente de acordo com o ambiente de desenvolvimento (development, test ou production). Para isso você precisa criar arquivos separados para cada ambiente.

Primeiro crie uma pasta seeds dentro da pasta db de seu projeto:

sauron@mordor:$ mkdir db/seeds


Depois crie um arquivo de seed para cada ambiente:

sauron@mordor:$ touch db/seeds/development.rb
sauron@mordor:$ touch db/seeds/production.rb


Em cada arquivo você vai configurar a seed de acordo com as necessidades do ambiente. No ambiente de desenvolvimento você pode criar várias instâncias de um determinado model para fazer testes, enquanto em produção você queira apenas criar alguns usuário padrão da aplicação. Vai depender de suas necessidades.

Por último precisamos configurar o rake para ler esses arquivos de seed. Cole isso no final do arquivo Rakefile:

namespace :db do
  task :seed => :environment do
    env_seed_file = File.join(Rails.root, 'db', 'seeds', "#{Rails.env}.rb")
    load(env_seed_file) if File.exist?(env_seed_file)
  end
end

Nenhum comentário:

Postar um comentário