class RedmineInstaller::Database

Public Class Methods

create_config(redmine) click to toggle source
# File lib/redmine-installer/database.rb, line 5
def self.create_config(redmine)
  # Maybe: enum_select
  klass = prompt.select('What database do you want use?') do |menu|
    menu.choice 'MySQL', MySQL
    menu.choice 'PostgreSQL', PostgreSQL
  end

  # Get parameters and create configuration
  database = klass.new(redmine)
  database.get_parameters
  database.make_config
  database
end
init(redmine) click to toggle source
# File lib/redmine-installer/database.rb, line 19
def self.init(redmine)
  unless File.exist?(redmine.database_yml_path)
    error "Database configuration files does not exist on #{redmine.root}."
  end

  definitions = YAML.load_file(redmine.database_yml_path)
  definition = definitions['production']

  unless definition.is_a?(Hash)
    error 'Unknow database definition'
  end

  case definition['adapter']
  when 'mysql', 'mysql2'
    klass = MySQL
  when 'pg', 'postgresql'
    klass = PostgreSQL
  else
    error "Unknow database adapter #{definition['adapter']}."
  end

  database = klass.new(redmine)
  database.set_paramaters(definition)
  database
end