teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを追記しました。

2019/03/13 14:06

投稿

koume
koume

スコア458

title CHANGED
File without changes
body CHANGED
@@ -22,46 +22,60 @@
22
22
  config/deploy.rb:149:in `<top (required)>'
23
23
  /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `load'
24
24
  /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `block (3 levels) in <top (required)>'
25
-
26
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
27
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
28
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch'
29
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/cli.rb:22:in `dispatch'
30
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start'
31
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/cli.rb:13:in `start'
32
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/exe/bundle:30:in `block in <top (required)>'
33
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
34
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/exe/bundle:22:in `<top (required)>'
35
25
  /home/vagrant/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
36
26
  /home/vagrant/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
37
- Task Argument Error
27
+ Tasks: TOP => production
38
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/task_manager.rb:109:in `resolve_args_with_dependencies'
39
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/task_manager.rb:75:in `resolve_args'
40
28
 
41
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/task_manager.rb:209:in `in_namespace'
42
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb:147:in `namespace'
29
+ ```
43
- config/deploy.rb:149:in `<top (required)>'
30
+ デプロイは初めてでわからないことだらけですが、宜しくお願いします。
44
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `load'
45
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:27:in `block (3 levels) in <top (required)>'
46
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/configuration/variables.rb:32:in `untrusted!'
47
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/2.3.0/delegate.rb:83:in `method_missing'
48
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-3.11.0/lib/capistrano/setup.rb:26:in `block (2 levels) in <top (required)>'
49
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
50
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
51
31
 
52
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:115:in `run_with_threads'
53
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:100:in `top_level'
32
+ 追記
54
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:78:in `block in run'
55
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
56
33
 
57
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
58
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch'
34
+ サイトでいろいろ調べていたところCapistrano v2 DSLをCapistrano v3と一緒に使用しているために発生しているらしいのですが
35
+ 対処方法がわからないので教えてください。
36
+ サイトでは
37
+ ```ここに言語を入力
38
+ オプションroles: :appを次のようなブロックに置き換える必要があります。
59
39
 
60
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
61
- /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.15.3/exe/bundle:22:in `<top (required)>'
62
- /home/vagrant/.rbenv/versions/2.3.1/bin/bundle:23:in `load'
63
- /home/vagrant/.rbenv/versions/2.3.1/bin/bundle:23:in `<main>'
64
- Tasks: TOP => production
40
+ task :my_task do
41
+ on roles(:app) do
42
+ ...
43
+ end
44
+ end
45
+ ```
46
+ とありました。
47
+ 参考書のバージョンは2.14.2で自分のバージョンは3.11.0ですのでエラーになってしまったようでした。
48
+ 問題の発生コードは以下になります。(参考書のコードをそのまま記述しています。)
65
49
 
50
+ ※capistranoでデータベースのバックアップを自動化するコードです。
51
+ ```ここに言語を入力
52
+ config/deploy.rb
53
+
54
+ namespace :db do
55
+ desc "Dump the database and compress it."
56
+ task :backup, :roles => :db, :only => { :primary => true } do #ここのコードを変更するのだと思います。
57
+ backups_path = "#{shared_path}/db_backups"
58
+
59
+ date = capture "cat #{current_path}/config/database.yml"
60
+ config = YAML::load(data)[rails_env]
61
+ abort unless config && config['adapter'] == 'mysql2'
62
+
63
+ file_name = "#{config['database']}-#{release_name}.sql.gz"
64
+
65
+ command = "/usr/bin/mysqldump --user=#{config['username']}"
66
+ command += " --password" if config['password']
67
+ command += " --host=#{config['host']}" if config['host']
68
+ command += " --port=#{config['port']}" if config['port']
69
+ command += " #{config['database']}"
70
+ command += " | gzip -c > #{backups_path}/#{file_name}"
71
+
72
+ run "mkdir -p #{backups_path}"
73
+ run command do |channel, _, output|
74
+ if output =~ /^Enter password:/
75
+ channel.send_data "#{config['password']}n"
76
+ end
77
+ end
78
+ end
79
+ end
66
80
  ```
67
- デプロイは初めてでわからいことだらけすが、宜お願いします。
81
+ どのように記述するべきでしょうか?ご教示お願いします。