Sha256: ae3e9fd1c65c3b90d5d8b931591616e6577148b28cc7812ed908ac7663a1980d
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
require 'erb' @@cap_config.load do namespace :db do namespace :mysql do desc "Create MySQL database and user for this environment using prompted values" task :setup, :roles => :db, :only => { :primary => true } do prepare_for_db_command sql = <<-SQL CREATE DATABASE #{db_name}; GRANT ALL PRIVILEGES ON #{db_name}.* TO #{db_user}@localhost IDENTIFIED BY '#{db_pass}'; SQL run "mysql --user=#{db_admin_user} -p --execute=\"#{sql}\"" do |channel, stream, data| if data =~ /^Enter password:/ pass = Capistrano::CLI.password_prompt "Enter database password for '#{db_admin_user}':" channel.send_data "#{pass}\n" end end end end desc "Create database.yml in shared path with settings for current stage and test env" task :create_yaml do set(:db_user) { Capistrano::CLI.ui.ask "Enter #{stage} database username:" } set(:db_pass) { Capistrano::CLI.password_prompt "Enter #{stage} database password:" } db_config = ERB.new <<-EOF base: &base adapter: mysql username: #{db_user} password: #{db_pass} #{stage}: database: #{application}_#{stage} <<: *base test: database: #{application}_test <<: *base EOF put db_config.result, "#{shared_path}/config/database.yml" end desc "Create symlink for database yaml stored in shared path" task :symlink do run "#{sudo} ln -nfs #{shared_path}/config/database.yml #{current_release}/config/database.yml" end end def prepare_for_db_command set :db_name, "#{application}_#{stage}" set(:db_admin_user) { Capistrano::CLI.ui.ask "Username with priviledged database access (to create db):" } set(:db_user) { Capistrano::CLI.ui.ask "Enter #{stage} database username:" } set(:db_pass) { Capistrano::CLI.password_prompt "Enter #{stage} database password:" } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
capistrano-recipes-0.4.0 | lib/recipes/db.rb |