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 -~----------~----~----~----~------~----~------~--~---