I know, everyone''s Capistrano deployment is unique, however, mine may be like one I have never seen before. 1. The app is contained on 1 server. I do not have multiple servers. 2. The app is actually deployed twice into two different directories. Now, #2 is causing me my problems. I can handle the database.yml, environment.rb, etc... just fine. The reason I need to deploy the application into two different locations is one application is our production server, the other application is a training environment. Obviously they have different database backends. Anyone have an idea on how to accomplish this task? Jeremy --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Just saw something cool on jamis'' blog, for handling this, credit goes to Ben Bleything: 1. nuke<http://jamis.jamisbuck.org/articles/2006/08/30/the-future-of-capistrano#> edit<http://jamis.jamisbuck.org/admin/comments/article/7791/edit/7795> *Ben Bleything <http://blog.bleything.net/>* said about 3 hours later: Another (and IMHO, better) option for staging is to simply create new tasks that changes whatever you need to change and then calls the deploy action: task :stage, :roles => [:app, :db, :web] do set :deploy_to, "/var/www/staging" deploy end It''s not as flexible as the env var method, but it''s hard to argue with cap stage :) See: http://jamis.jamisbuck.org/articles/2006/08/30/the-future-of-capistrano#comments So, I imagine you could have a normal deploy task but named something different, do your normal deploy stuff and then set the new :deploy_to dir, and call deploy again. cheers! good luck On 8/31/06, Jeremy Cowgar <jeremy-gpWmyxsr1AXQT0dZR+AlfA@public.gmane.org> wrote:> > > I know, everyone''s Capistrano deployment is unique, however, mine may > be like one I have never seen before. > > 1. The app is contained on 1 server. I do not have multiple servers. > 2. The app is actually deployed twice into two different directories. > > Now, #2 is causing me my problems. I can handle the database.yml, > environment.rb, etc... just fine. The reason I need to deploy the > application into two different locations is one application is our > production server, the other application is a training environment. > Obviously they have different database backends. > > Anyone have an idea on how to accomplish this task? > > Jeremy > > > > >-- Charles Brian Quinn self-promotion: www.seebq.com highgroove studios: www.highgroove.com slingshot rails hosting: www.slingshothosting.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On Thu, Aug 31, 2006, Jeremy Cowgar wrote:> 2. The app is actually deployed twice into two different directories.I have a similar situation where I have a staging environment and a production environment on the same server in different directories. The way I got around it was to write a couple of wrapper tasks that change deploy_to and then call the deployment task: task :stage, :roles => [:app, :db, :web] do set :deploy_to, "/var/www/staging" deploy end Of course, you could do both at the same time: task :mydeploy, :roles => [:app, :db, :web] do set :deploy_to, "/var/www/staging" deploy set :deploy_to, "/var/www/production" deploy end Hope that helps! Ben --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On Thu, Aug 31, 2006, Jeremy Cowgar wrote:> 1. The app is contained on 1 server. I do not have multiple servers. > 2. The app is actually deployed twice into two different directories.Another option just occurred to me, that (if possible) is probably a much cleaner solution. Set up another environment in your app... add a new section to your database.yml, copy your production.rb in config/environments, etc for your training environment. Then, set up your webserver to fire up two instances of the same codebase, one in the training environment and one in production. I can''t think of any reason why this wouldn''t work, but I also haven''t tried it, so grain of salt and all that. Ben --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On Aug 31, 2006, at 2:29 PM, Ben Bleything wrote:> Set up another environment in your app... add a new section to your > database.yml, copy your production.rb in config/environments, etc for > your training environment.desc "Set training environment" task : training do role :app, "app server" # possibly the same as production role :web, "web server" # ditto set :rails_env, :training set :deploy_to, "/opt/rails/#{application}/training" end desc "Set production environment" task :production do role :app, "app1.whatever.com", "app1.whatever.com" role :web, "web1.whatever.com", web2.whatever.com set :rails_env, :production set :deploy_to, "/opt/rails/#{application}/production" end Now: $ cap production deploy $ cap training deploy $ cap <production/training> <any task> Etc. -- Chris Wanstrath http://errtheblog.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On Thu, Aug 31, 2006, Chris Wanstrath wrote:> desc "Set training environment" > task : training do > role :app, "app server" # possibly the same as production > role :web, "web server" # ditto > set :rails_env, :training > set :deploy_to, "/opt/rails/#{application}/training" > end > > desc "Set production environment" > task :production do > role :app, "app1.whatever.com", "app1.whatever.com" > role :web, "web1.whatever.com", web2.whatever.com > set :rails_env, :production > set :deploy_to, "/opt/rails/#{application}/production" > endIsn''t that what I said in my first email? :) I was trying to come up with a way to not require one''s code to be in two places at once. Ben --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On Thu, Aug 31, 2006, Chris Wanstrath wrote:> $ cap production deploy > $ cap training deploy > > $ cap <production/training> <any task>Ahh, I see the difference now. I didn''t know you could chain tasks like that. Very nice! Ben --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---