Guest User

Untitled

a guest
May 3rd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. # deploy.rb
  2. # This requires that you create in your shared directory config/database.yml
  3.  
  4. after "deploy:update_code", "link_files"
  5.  
  6. namespace :link_files do
  7. task :default do
  8. database_config
  9. end
  10.  
  11. desc "Link the server's database.yml file for rails."
  12. task :database_config, :roles => [:app] do
  13. run "ln -s #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  14. end
  15. end
  16.  
  17. desc "Creates the database.yml for the server."
  18. task :create_db_yml, :roles => [:app] do
  19. puts "I need some info to create the database.yml file for the #{application} app:"
  20. db_cfg = {}
  21. passwd = ""
  22. c_passwd = ""
  23.  
  24. begin
  25. puts "Dreamshots Database:"
  26. db_cfg[:user] = Capistrano::CLI.ui.ask("Username: ") {|q| q.default = 'ruby'}
  27. begin
  28. passwd = Capistrano::CLI.password_prompt "Password: "
  29. c_passwd = Capistrano::CLI.password_prompt "Confirm Password: "
  30. puts "Passwords do not match" if passwd != c_passwd
  31. end while passwd != c_passwd
  32.  
  33. db_cfg[:pw] = passwd
  34. db_cfg[:host] = Capistrano::CLI.ui.ask("Host name: ") {|q| q.default = 'localhost'}
  35. db_cfg[:socket] = Capistrano::CLI.ui.ask("Socket: ") {|q| q.default = '/var/lib/mysql/mysql.sock'}
  36. db_cfg[:production_name] = Capistrano::CLI.ui.ask("Production database name: ") {|q| q.default = application}
  37. db_cfg[:test_name] = Capistrano::CLI.ui.ask("Test database name: ") {|q| q.default = "#{application}_test"}
  38. db_cfg[:development_name] = Capistrano::CLI.ui.ask("Development database name: ") {|q| q.default = "#{application}_dev"}
  39.  
  40.  
  41. puts "Database Configuration:"
  42. puts "Database User:".ljust(30) + db_cfg[:user]
  43. puts "Database Password:".ljust(30) + "******"
  44. puts "Database Host:".ljust(30) + db_cfg[:host]
  45. puts "Database Socket:".ljust(30) + db_cfg[:socket]
  46. puts "Database Production:".ljust(30) + db_cfg[:production_name]
  47. puts "Database Test:".ljust(30) + db_cfg[:test_name]
  48. puts "Database Development:".ljust(30) + db_cfg[:development_name]
  49. end until Capistrano::CLI.ui.agree "Is this accurate (y/n)? "
  50.  
  51. db_config = ERB.new <<-EOF
  52. base: &base
  53. adapter: mysql
  54. socket: #{db_cfg[:socket]}
  55. username: #{db_cfg[:user]}
  56. password: #{db_cfg[:pw]}
  57. host: localhost
  58.  
  59. development:
  60. database: #{db_cfg[:development_name]}
  61. <<: *base
  62.  
  63. test:
  64. database: #{db_cfg[:test_name]}
  65. <<: *base
  66.  
  67. production:
  68. database: #{db_cfg[:production_name]}
  69. <<: *base
  70.  
  71. EOF
  72.  
  73. put db_config.result, "#{shared_path}/config/database.yml"
  74. run "chgrp #{group} #{shared_path}/config/database.yml"
  75. run "chmod 660 #{shared_path}/config/database.yml"
  76. end
Add Comment
Please, Sign In to add comment