Have you tried moving your 'after' call outside of the :uploads namespace? -Erik
On Thu, Apr 9, 2009 at 3:35 PM, TimBooher <[email protected]> wrote: > > I share a common database for my staging and production site. I would > like to share image uploads as well in > > /var/www/my_site/staging/current/public/system > > from var/www/my_site: > > |-- current -> /var/www/my_site/releases/20090409190216 > |-- releases > . . . > |-- shared > | |-- log > | |-- pids > | `-- system > `-- staging > |-- current -> /var/www/my_site/staging/releases/20090409185152 > |-- releases > `-- shared > > I want, paperclip to store images from both distributions in /var/www/ > my_site/staging. > > Since capistrano already creates a link to #{shared_path}/system, I > just need to map: > /var/www/my_site/staging/shared/system to --> /var/www/my_site/shared/ > system > > (http://github.com/jamis/capistrano/blob/ > 2ce539d87c928f41d82f7bfda84e228d3948d82b/lib/capistrano/recipes/ > deploy.rb#L229<http://github.com/jamis/capistrano/blob/%0A2ce539d87c928f41d82f7bfda84e228d3948d82b/lib/capistrano/recipes/%0Adeploy.rb#L229> > ) > > So I have the following deploy.rb: > > -------------------------------------- > set :stages, %w(staging production) > set :default_stage, "staging" > require 'capistrano/ext/multistage' > > set :application, "my_site" > set :repository, "http://svn.my_site.com/" > set :deploy_to, "/var/www/#{application}" > set :user, "passenger" > set :keep_releases, 3 # (doesn't seem to work) > > role :app, "my_server" > role :web, "my_server" > role :db, "my_server", :primary => true > > namespace :deploy do > desc "Restarting mod_rails with restart.txt" > task :restart, :roles => :app, :except => { :no_release => true } do > run "touch #{current_path}/tmp/restart.txt" > end > > [:start, :stop].each do |t| > desc "#{t} task is a no-op with mod_rails" > task t, :roles => :app do ; end > end > end > > # ============================== > # Uploads > # ============================== > > namespace :uploads do > > desc <<-EOD > [internal] Creates the symlink to uploads shared folder > for the most recently deployed version. > EOD > task :symlink, :except => { :no_release => true } do > run "rm -rf #{current_path}/public/system" > run "ln -nfs /var/www/my_site/shared/system #{current_path}/public/ > system" > end > > after "deploy:finalize_update", "uploads:symlink" > > end > > -------------------------------------- > > I am having trouble getting that callback to work, but am wondering if > there is not a much easier way to do this (or more robust, am I > missing something). I thought I could fix things by moving that after > "deploy:" command to the front of the script, and out of the > namespace. I also what _nothing_ to happen when I type: > > cap production deploy. > > Thanks in advance, > > Tim > > > > > --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---
