Hi,
here's how I solved the same problem for postgresql: 
https://github.com/bruno-/capistrano-postgresql/blob/master/lib/capistrano/postgresql/psql_helpers.rb#L6-16

As you can see `test` is used (in psql helper) to detect success or failure.

Let me know if you need more help around this. I spent quite some time 
debugging and getting this to work for postgres (and I think it's still not 
perfect).

On Friday, April 4, 2014 9:21:18 PM UTC+2, Vell wrote:
>
> Versions:
>
>    - Ruby 2.0
>    - Capistrano 3.1
>    - Rake / Rails / etc 4.0.4
>
> Platform:
>
>    - Working on.... mac os x
>    - Deploying to... centos 6.5
>
> Logs:
>
>    - Please past logs (as completely as possible to a 3rd party pasting 
>    service such as pastie.org)
>
> Files:
>
>    - Capfile
>    - deploy.rb
>    - Stage files (production.rb, staging.rb)
>
> Hello all,
>
> I am attempting to make it so that capistrano creates a db if it doesn't 
> exist. Right now I am able to run the command to check for the db but I am 
> not able to capture the "unknown database" message that comes out from 
> MYSQL.
>
> I'm sure there is a way to do it, I just haven't figured it out the right 
> way to do it. The code I am starting with is below:
>
>   desc "check if db exists on remote server. If not create it."
>   task :check_db do
>     on roles(:app) do |host|
>       puts "-"*100
>       puts capture("mysql -usomeuser -psomepassword 
> #{fetch(:application)}_#{fetch(:rails_env)}")
>     end
>   end
>
> I have also tried:
>
> puts %x("mysql -usomeuser -psomepassword 
> #{fetch(:application)}_#{fetch(:rails_env)}")
>
> The response I get is:
>
> DEBUG [242e1da5] Command: mysql -usomeuser -psomepassword 
> app_name_dev_server
> DEBUG [242e1da5] ERROR 
> DEBUG [242e1da5]  1049 (42000) 
> DEBUG [242e1da5] : Unknown database 'online_community_dev_server'
>
>
> That last line, or even the one before it, I can't seem to catch it to use 
> in a condition statement.
>
>
> Any thoughts would be greatly appreciated.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to capistrano+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/e6f569db-5514-49d2-b5d2-9ae279817dc5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to