사용자 정의 시드 파일 추가
새로운 기능을 더미 데이터로 채우고 싶지만 db / seeds.rb 파일은 이미이 기능과 관련없는 다른 데이터를 시드하기 때문에 사용하고 싶지 않습니다.
기본 seeds.rb
파일을 실행하려면 명령을 실행합니다 rake db:seed
.
db
라는 디렉토리에 파일을 생성 seeds_feature_x.rb
하면 rake 명령이 해당 파일 만 실행하는 모습은 어떻습니까?
사용자 지정 시드를 보관할 별도의 디렉터리를 만들어 시작합니다 db/seeds
. 이 예제에서는 . 그런 다음 lib/tasks
디렉터리에 rakefile을 추가하여 사용자 지정 작업을 만듭니다 .
# lib/tasks/custom_seed.rake
namespace :db do
namespace :seed do
Dir[Rails.root.join('db', 'seeds', '*.rb')].each do |filename|
task_name = File.basename(filename, '.rb')
desc "Seed " + task_name + ", based on the file with the same name in `db/seeds/*.rb`"
task task_name.to_sym => :environment do
load(filename) if File.exist?(filename)
end
end
end
end
이 rakefile은 db/seeds
디렉토리 ( .rb
확장자 제외 ) 에있는 시드 파일의 이름을 수락 한 다음 seeds.rb
. 명령 줄에서 다음을 실행하여 rake 작업을 실행할 수 있습니다.
rake db:seed:file_name # Name of the file EXCLUDING the .rb extension
업데이트 : 실행할 때 지금은 또한 종자 작업을 나열해야 rake --tasks
하거나 rake -T
.
나는 zeantsoi의 대답을 시도했지만 내가 원하는 것을 얻지 못했으며 디렉토리의 모든 파일을 수행했습니다. 그것을 해킹하고 이것을 얻었습니다.
namespace :db do
namespace :seed do
task :single => :environment do
filename = Dir[File.join(Rails.root, 'db', 'seeds', "#{ENV['SEED']}.seeds.rb")][0]
puts "Seeding #{filename}..."
load(filename) if File.exist?(filename)
end
end
end
그리고 이것을 사용하려면 다음을 수행하십시오.
rake db:seed:single SEED=<seed_name_without_.seeds.rb>
그러면 Rails.root / db / seeds 폴더에서 .seeds.rb가없는 파일 이름을 찾습니다 (사용자를 위해 추가합니다).
작업 예 :
rake db:seed:single SEED=my_custom_seed
위는 Rails.root/db/seeds/my_custom_seed.seeds.rb
파일을 시드 합니다.
너무 복잡한! 파일 이름을 전달하지 않고 db / seeds 디렉토리 아래의 모든 파일을 실행하는 간단한 작업을 원했습니다.
# lib/tasks/seed.rake
desc "Run all files in db/seeds directory"
namespace :db do
task seed: :environment do
Dir[File.join(Rails.root, 'db', 'seeds', '*.rb')].each do |filename|
puts "seeding - #{filename}. for reals, yo!"
load(filename)
end
end
end
참고 URL : https://stackoverflow.com/questions/19872271/adding-a-custom-seed-file
'program story' 카테고리의 다른 글
특정 요청에 대해 ajaxStart () 및 ajaxStop () 비활성화 (0) | 2020.10.31 |
---|---|
Laravel 4 : 원시 SQL을 실행하는 방법? (0) | 2020.10.31 |
Objective-C와 동등한 정적 생성자? (0) | 2020.10.31 |
virtualenv 또는 빌드 아웃을 사용하여 PIL을 설치하는 문제 (0) | 2020.10.31 |
전역 변수가 나쁘다고 들었습니다. 어떤 대체 솔루션을 사용해야합니까? (0) | 2020.10.31 |