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 [email protected].
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.