engineyard-eycap 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,5 +1,7 @@
1
- == HEAD / 0000-00-00
1
+ == 0.3.4 / 2008-06-17
2
2
  * rake install_gem_no_doc for faster install
3
+ * set role to db for backup_name task
4
+ * add migration support for merb
3
5
 
4
6
  == 0.3.3 / 2008-05-07
5
7
  * add ey_logger to log deploys to server
data/lib/eycap.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eycap
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
@@ -1,4 +1,5 @@
1
1
  require 'tmpdir'
2
+ require 'fileutils'
2
3
  module Capistrano
3
4
 
4
5
  class Logger
@@ -1,7 +1,7 @@
1
1
  Capistrano::Configuration.instance(:must_exist).load do
2
2
 
3
3
  namespace :db do
4
- task :backup_name, :only => { :primary => true } do
4
+ task :backup_name, :roles => :db, :only => { :primary => true } do
5
5
  now = Time.now
6
6
  run "mkdir -p #{shared_path}/db_backups"
7
7
  backup_time = [now.year,now.month,now.day,now.hour,now.min,now.sec].join('-')
@@ -12,7 +12,7 @@ Capistrano::Configuration.instance(:must_exist).load do
12
12
  task :clone_prod_to_staging, :roles => :db, :only => { :primary => true } do
13
13
  backup_name
14
14
  on_rollback { run "rm -f #{backup_file}" }
15
- run "mysqldump --add-drop-table -u #{dbuser} -h #{production_dbhost}-replica -p#{dbpass} #{production_database} > #{backup_file}"
15
+ run "mysqldump --add-drop-table -u #{dbuser} -h #{production_dbhost.gsub('-master', '-replica')} -p#{dbpass} #{production_database} > #{backup_file}"
16
16
  run "mysql -u #{dbuser} -p#{dbpass} -h #{staging_dbhost} #{staging_database} < #{backup_file}"
17
17
  run "rm -f #{backup_file}"
18
18
  end
@@ -20,7 +20,7 @@ Capistrano::Configuration.instance(:must_exist).load do
20
20
  desc "Backup your database to shared_path+/db_backups"
21
21
  task :dump, :roles => :db, :only => {:primary => true} do
22
22
  backup_name
23
- run "mysqldump --add-drop-table -u #{dbuser} -h #{environment_dbhost}-replica -p#{dbpass} #{environment_database} | bzip2 -c > #{backup_file}.bz2"
23
+ run "mysqldump --add-drop-table -u #{dbuser} -h #{environment_dbhost.gsub('-master', '-replica')} -p#{dbpass} #{environment_database} | bzip2 -c > #{backup_file}.bz2"
24
24
  end
25
25
 
26
26
  desc "Sync your production database to your local workstation"
@@ -13,11 +13,49 @@ Capistrano::Configuration.instance(:must_exist).load do
13
13
  desc "Link the database.yml and mongrel_cluster.yml files into the current release path."
14
14
  task :symlink_configs, :roles => :app, :except => {:no_release => true} do
15
15
  run <<-CMD
16
- cd #{release_path} &&
17
- ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml &&
18
- ln -nfs #{shared_path}/config/mongrel_cluster.yml #{release_path}/config/mongrel_cluster.yml
16
+ cd #{latest_release} &&
17
+ ln -nfs #{shared_path}/config/database.yml #{latest_release}/config/database.yml &&
18
+ ln -nfs #{shared_path}/config/mongrel_cluster.yml #{latest_release}/config/mongrel_cluster.yml
19
19
  CMD
20
20
  end
21
+
22
+ desc <<-DESC
23
+ Run the migrate rake task. By default, it runs this in most recently \
24
+ deployed version of the app. However, you can specify a different release \
25
+ via the migrate_target variable, which must be one of :latest (for the \
26
+ default behavior), or :current (for the release indicated by the \
27
+ `current' symlink). Strings will work for those values instead of symbols, \
28
+ too. You can also specify additional environment variables to pass to rake \
29
+ via the migrate_env variable. Finally, you can specify the full path to the \
30
+ rake executable by setting the rake variable. The defaults are:
31
+
32
+ set :rake, "rake"
33
+ set :framework, "merb"
34
+ set :merb_env, "production"
35
+ set :migrate_env, ""
36
+ set :migrate_target, :latest
37
+ DESC
38
+ task :migrate, :roles => :db, :only => { :primary => true } do
39
+ rake = fetch(:rake, "rake")
40
+
41
+ framework = fetch(:framework, "rails")
42
+ if framework.match(/^rails$/i)
43
+ app_env = fetch(:rails_env, "production")
44
+ else
45
+ app_env = fetch("#{framework.downcase}_env".to_sym, "production")
46
+ end
47
+
48
+ migrate_env = fetch(:migrate_env, "")
49
+ migrate_target = fetch(:migrate_target, :latest)
50
+
51
+ directory = case migrate_target.to_sym
52
+ when :current then current_path
53
+ when :latest then current_release
54
+ else raise ArgumentError, "unknown migration target #{migrate_target.inspect}"
55
+ end
56
+
57
+ run "cd #{directory}; #{rake} #{framework.upcase}_ENV=#{app_env} #{migrate_env} db:migrate"
58
+ end
21
59
 
22
60
  desc "Display the maintenance.html page while deploying with migrations. Then it restarts and enables the site again."
23
61
  task :long do
@@ -87,4 +125,4 @@ Capistrano::Configuration.instance(:must_exist).load do
87
125
  end
88
126
  end
89
127
 
90
- end
128
+ end
@@ -4,10 +4,10 @@ Capistrano::Configuration.instance(:must_exist).load do
4
4
  desc "After update_code you want to symlink the index and ferret_server.yml file into place"
5
5
  task :symlink_configs, :roles => :app, :except => {:no_release => true} do
6
6
  run <<-CMD
7
- cd #{release_path} &&
8
- ln -nfs #{shared_path}/config/ferret_server.yml #{release_path}/config/ferret_server.yml &&
9
- if [ -d #{release_path}/index ]; then mv #{release_path}/index #{release_path}/index.bak; fi &&
10
- ln -nfs #{shared_path}/index #{release_path}/index
7
+ cd #{latest_release} &&
8
+ ln -nfs #{shared_path}/config/ferret_server.yml #{latest_release}/config/ferret_server.yml &&
9
+ if [ -d #{latest_release}/index ]; then mv #{latest_release}/index #{latest_release}/index.bak; fi &&
10
+ ln -nfs #{shared_path}/index #{latest_release}/index
11
11
  CMD
12
12
  end
13
13
  [:start,:stop,:restart].each do |op|
@@ -4,8 +4,9 @@ Capistrano::Configuration.instance(:must_exist).load do
4
4
  desc "After update_code you want to symlink the juggernaut.yml file into place"
5
5
  task :symlink_configs, :roles => :app, :except => {:no_release => true} do
6
6
  run <<-CMD
7
- cd #{release_path} &&
8
- ln -nfs #{shared_path}/config/juggernaut.yml #{release_path}/config/juggernaut.yml
7
+ cd #{latest_release} &&
8
+ ln -nfs #{shared_path}/config/juggernaut.yml #{latest_release}/config/juggernaut.yml &&
9
+ ln -nfs #{shared_path}/config/juggernaut_hosts.yml #{latest_release}/config/juggernaut_hosts.yml
9
10
  CMD
10
11
  end
11
12
  [:start,:stop,:restart].each do |op|
@@ -14,7 +14,7 @@ Capistrano::Configuration.instance(:must_exist).load do
14
14
  end
15
15
  desc "Symlink the memcached.yml file into place if it exists"
16
16
  task :symlink_configs, :roles => :app, :only => {:memcached => true }, :except => { :no_release => true } do
17
- run "if [ -f #{shared_path}/config/memcached.yml ]; then ln -nfs #{shared_path}/config/memcached.yml #{release_path}/config/memcached.yml; fi"
17
+ run "if [ -f #{shared_path}/config/memcached.yml ]; then ln -nfs #{shared_path}/config/memcached.yml #{latest_release}/config/memcached.yml; fi"
18
18
  end
19
19
  end
20
20
  end
@@ -4,7 +4,7 @@ Capistrano::Configuration.instance(:must_exist).load do
4
4
  desc "After update_code you want to symlink the index and ferret_server.yml file into place"
5
5
  task :symlink_configs, :roles => :app, :except => {:no_release => true} do
6
6
  run <<-CMD
7
- cd #{release_path} && ln -nfs #{shared_path}/config/solr.yml #{release_path}/config/solr.yml
7
+ cd #{latest_release} && ln -nfs #{shared_path}/config/solr.yml #{latest_release}/config/solr.yml
8
8
  CMD
9
9
  end
10
10
 
@@ -34,4 +34,4 @@ Capistrano::Configuration.instance(:must_exist).load do
34
34
  end
35
35
  end
36
36
  end
37
- end
37
+ end
@@ -26,8 +26,8 @@ Capistrano::Configuration.instance(:must_exist).load do
26
26
 
27
27
  desc "Symlink the sphinx config file"
28
28
  task :symlink, :roles => :app, :only => {:sphinx => true}, :except => {:no_release => true} do
29
- run "if [ -d #{release_path}/config/ultrasphinx ]; then mv #{release_path}/config/ultrasphinx #{release_path}/config/ultrasphinx.bak; fi"
30
- run "ln -nfs #{shared_path}/config/ultrasphinx #{release_path}/config/ultrasphinx"
29
+ run "if [ -d #{latest_release}/config/ultrasphinx ]; then mv #{latest_release}/config/ultrasphinx #{latest_release}/config/ultrasphinx.bak; fi"
30
+ run "ln -nfs #{shared_path}/config/ultrasphinx #{latest_release}/config/ultrasphinx"
31
31
  end
32
32
  end
33
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard-eycap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Engine Yard
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-12 00:00:00 -07:00
12
+ date: 2008-05-24 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency