для приложения rails, я использую seeds.rb для заполнения базы данных записями и связанными с ними загрузками изображений. Seeds.rb получает все данные записей из заданного YAML-файла и захватывает файлы изображений из папки для их загрузки. Это хорошо работает в области развития окружающей среды:Rails + Capistrano, база данных по производству семян с загрузкой файлов?
Структура папок:
rails_app/
db/seeds.rb
...
data/
images1/
image1.jpg
image2.jpg
images2/
...
data.yml
data.yml:
item1:
description: Some description
filepath: images1/image1.jpg
item2:
description: ...
seeds.rb:
items = YAML.load_file(File.join(Rails.root, '..', 'data', 'data.yml'))
items.each do |item, details|
# create items with file-uploads, etc.
...
end
Как все базы данных контента является готовый к производству, как это, мы хотим засеять производственную базу данных через rake db: seed и получить доступ к моему локальному файлу YAML и папку с изображениями для создания записей со связанными с ними файловыми загрузками.
Для развертывания, я использую Capistrano и уже found a task семян данные производства ...
# Add this in config/deploy.rb
# and run 'cap production deploy:seed' to seed your database
desc 'Runs rake db:seed'
task :seed => [:set_rails_env] do
on primary fetch(:migration_role) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, "db:seed"
end
end
end
end
... К сожалению, эта задача работает только с seeds.rb на сервере и, таким образом, не может найти YAML или изображения на моей локальной машине.
Как написать задачу для Capistrano для доступа к локальному YAML и файлам и db: занести их в базу данных?
(Appearantly это не обычная практика для заполнения базы данных производства, но она работала хорошо, чтобы получить YAML с клиентской стороны со всеми файлами и уже использует эти «правильные» данные для разработки/дизайна)
Спасибо!
Хорошо, означает ли это, я в основном все загрузки на промежуточную папку, чтобы повторно загрузить его оттуда в мое приложение? Для меня это звучит довольно долго. Существуют ли какие-либо методы для синхронизации разработки с производственной базой данных? Благодарю. – R4ttlesnake