1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- require 'yaml'
- cnf = YAML.load_file(File.join(__dir__, '../../config/database/database.yml'))
- cnf.delete('default')
- database = ENV['ENFORCE_DB_SERVICE']
- if !database
- hostsfile = '/etc/hosts'
- database = %w[postgresql mysql].shuffle.find do |possible_database|
- File.foreach(hostsfile).any? { |l| l[possible_database] }
- end
- end
- raise "Can't find any supported database in #{hostsfile}." if database.nil?
- puts "NOTICE: Found/selected #{database} Database Service"
- db_settings_map = {
- 'postgresql' => {
- 'adapter' => 'postgresql',
- 'username' => 'zammad',
- 'password' => 'zammad',
- 'host' => 'postgresql', # db alias from gitlab-ci.yml
- },
- 'mysql' => {
- 'adapter' => 'mysql2',
- 'username' => 'root',
- 'password' => 'zammad',
- 'host' => 'mysql', # db alias from gitlab-ci.yml
- }
- }
- # fetch DB settings from settings map and fallback to postgresql
- db_settings = db_settings_map.fetch(database) { db_settings_map['postgresql'] }
- %w[development test production].each do |environment|
- cnf[environment].merge!(db_settings)
- end
- File.open('config/database.yml', 'w') do |file|
- file.write(Psych.dump(cnf))
- end
|