From 0d62fd6848449e419f3753f2aae2d202c16e1f55 Mon Sep 17 00:00:00 2001 From: mxhsieh Date: Fri, 7 Jun 2013 12:58:04 +0800 Subject: [PATCH 1/2] function : setup_database is enhanced, using case-when instead --- lib/bootstrappers/generators/app_generator.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/bootstrappers/generators/app_generator.rb b/lib/bootstrappers/generators/app_generator.rb index cbeeb3f..ab5fce9 100644 --- a/lib/bootstrappers/generators/app_generator.rb +++ b/lib/bootstrappers/generators/app_generator.rb @@ -87,8 +87,13 @@ def setup_capistrano def setup_database say 'Setting up database' - if 'mysql' == options[:database] + case options[:database] + when 'mysql' build :use_mysql_config_template + when 'sqlite' + build :use_sqlite_config_template + when 'postgresql' + build :use_postgresql_config_template end build :create_database From 6caa911827a30ad1cae4c27c1452e1343dc5ec1a Mon Sep 17 00:00:00 2001 From: mxhsieh Date: Fri, 7 Jun 2013 12:59:28 +0800 Subject: [PATCH 2/2] add function : use_sqlite_config_template, use_postgresql_config_template for multi db support --- lib/bootstrappers/app_builder.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/bootstrappers/app_builder.rb b/lib/bootstrappers/app_builder.rb index cbf7457..9b026b6 100644 --- a/lib/bootstrappers/app_builder.rb +++ b/lib/bootstrappers/app_builder.rb @@ -97,6 +97,31 @@ def use_mysql_config_template end + def use_postgresql_config_template + + template 'postgresql_database.yml.erb', 'config/database.yml',:force => true + template 'postgresql_database.yml.erb', 'config/database.yml.example', :force => true + + db_user_name = ask("What is your local database user name? [postgres]") + db_password = ask("What is your local database password? ['']") + + replace_in_file 'config/database.yml', 'username: root', "username: #{db_user_name}" if db_user_name.present? + replace_in_file 'config/database.yml', 'password: ""', "password: '#{db_password}'" if db_password.present? + + end + + def use_sqlite_config_template + + template 'sqlite_database.yml.erb', 'config/database.yml',:force => true + template 'sqlite_database.yml.erb', 'config/database.yml.example', :force => true + + db_user_name = ask("What is your local database user name? [root]") + db_password = ask("What is your local database password? ['']") + + replace_in_file 'config/database.yml', 'username: root', "username: #{db_user_name}" if db_user_name.present? + replace_in_file 'config/database.yml', 'password: ""', "password: '#{db_password}'" if db_password.present? + + end end end