LINUX.ORG.RU

Rails: разные настройки для разных development серверов


0

0

доброго времени суток.

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

Рельсы предлагают три стандартных сред development, production, test. А что если development серверов есть несколько конфигураций? Есть моя рабочая машина, где ведется разработка а есть еще и тестовый сервак, куда делается релиз перед тем как заливать на боевые машины.

можно как то разделить development1 и development2?

Перемещено JB из Development

★★★★★
Ответ на: комментарий от stigger

или так как предлагает stigger ( проще всего ), или, что имхо более красиво и правильно, не хранить готовых настроек конкретного сервера в системе контроля версий, а генерить database.yml и все специфичные для сервера конфиги ( sphinx, там, mongrel_cluster.conf ) по шаблону, из capistrano.

отрывок deploy.rb из одного проекта:

# Create database.yml on server
namespace :db do
desc "Create database.yml in shared path"
task :default do
db_config = ERB.new <<-EOF
base: &base
adapter: mysql
socket: /var/run/mysqld/mysqld.sock
username: blablabla
password: secret

development:
database: #{application}_development
<<: *base

test:
database: #{application}_test
<<: *base

production:
database: #{application}_production
<<: *base
EOF

run "mkdir -p #{shared_path}/config"
put db_config.result, "#{shared_path}/config/database.yml"
end

desc "Make symlink for database.yml"
task :symlink do
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
end
end


Соответственно код следует изменить, так чтобы настройки деплоя для боевого сервера и тестового лежали в отдельных неймспейсах. ну или deploy:test; deploy:production, или еще как-нибудь, в зависимости от предпочтений.

volh ★★
()
Ответ на: комментарий от volh

@volh: так и сделал, спасибо! только настройки все же положил в дерево, чтобы удобнее редактировать было, в файлы типа database.yml.role , где role соответствует роли сервера в capistrano, скажем devz, production и т.д.

svyatogor ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.