class Samidare::EmbulkUtility::ConfigGenerator

Public Instance Methods

generate_config(database_configs, bq_config) click to toggle source
# File lib/samidare/embulk_utility.rb, line 4
def generate_config(database_configs, bq_config)
  bq_utility = BigQueryUtility.new(bq_config)

  database_configs.keys.each do |db_name|
    database_config = database_configs[db_name]
    table_configs = all_table_configs[db_name]
    mysql_client = MySQL::MySQLClient.new(database_config)

    table_configs.each do |table_config|
      write(
        "#{bq_config['schema_dir']}/#{db_name}",
        "#{table_config.name}.json",
        mysql_client.generate_bq_schema(table_config.name)
      )
      write(
        "#{bq_config['config_dir']}/#{db_name}",
        "#{table_config.name}.yml",
        bq_utility.generate_embulk_config(
          db_name,
          database_config,
          table_config,
          mysql_client.columns(table_config.name))
      )
    end
  end
end

Private Instance Methods

all_table_configs() click to toggle source
# File lib/samidare/embulk_utility.rb, line 37
def all_table_configs
  @all_table_configs ||= MySQL::TableConfig.generate_table_configs
end
write(directory, file_name, content) click to toggle source
# File lib/samidare/embulk_utility.rb, line 32
def write(directory, file_name, content)
  FileUtils.mkdir_p(directory) unless FileTest.exist?(directory)
  File.write("#{directory}/#{file_name}", content)
end