Class: HerokuTool::DbConfiguration
- Inherits:
-
Object
- Object
- HerokuTool::DbConfiguration
- Defined in:
- lib/heroku_tool/db_configuration.rb
Instance Attribute Summary collapse
-
#config_all ⇒ Object
readonly
Returns the value of attribute config_all.
-
#config_env ⇒ Object
readonly
Returns the value of attribute config_env.
Instance Method Summary collapse
- #database ⇒ Object
- #generate_drop_tables_sql ⇒ Object
-
#initialize(filepath: "config/database.yml", rails_env: ENV["RAILS_ENV"] || "development") ⇒ DbConfiguration
constructor
A new instance of DbConfiguration.
- #user_arg ⇒ Object
Constructor Details
#initialize(filepath: "config/database.yml", rails_env: ENV["RAILS_ENV"] || "development") ⇒ DbConfiguration
Returns a new instance of DbConfiguration.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/heroku_tool/db_configuration.rb', line 6 def initialize(filepath: "config/database.yml", rails_env: ENV["RAILS_ENV"] || "development") db_config_from_file = ERB.new(File.read(filepath)).result @config_all = YAML.safe_load(db_config_from_file, permitted_classes: [], permitted_symbols: [], aliases: true) config_env = @config_all[rails_env] @config_env = if config_env["database"].is_a?(String) config_env elsif config_env.key?("primary") config_env["primary"] else config_env.values.first end end |
Instance Attribute Details
#config_all ⇒ Object (readonly)
Returns the value of attribute config_all.
4 5 6 |
# File 'lib/heroku_tool/db_configuration.rb', line 4 def config_all @config_all end |
#config_env ⇒ Object (readonly)
Returns the value of attribute config_env.
4 5 6 |
# File 'lib/heroku_tool/db_configuration.rb', line 4 def config_env @config_env end |
Instance Method Details
#database ⇒ Object
29 30 31 |
# File 'lib/heroku_tool/db_configuration.rb', line 29 def database config_env["database"] end |
#generate_drop_tables_sql ⇒ Object
19 20 21 22 |
# File 'lib/heroku_tool/db_configuration.rb', line 19 def generate_drop_tables_sql sql = %(select 'DROP TABLE IF EXISTS \\"' || tablename || '\\" CASCADE;' from pg_tables where schemaname = 'public') %(psql #{user_arg} #{database} -t -c "#{sql}") end |
#user_arg ⇒ Object
24 25 26 27 |
# File 'lib/heroku_tool/db_configuration.rb', line 24 def user_arg username = config_env["username"] username.present? && "-U #{username}" || "" end |