3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/naginegi/embulk_config.rb', line 3
def generate_config(db_configs, bq_config)
bq_utility = BigQuery.new(bq_config)
db_configs.keys.each do |db_name|
db_config = db_configs[db_name]
table_configs = all_table_configs[db_name]
db_type = db_config['db_type']
case db_type
when 'mysql'
sql_client = MySQL::MySQLClient.new(db_config)
when 'postgresql'
sql_client = PostgreSQL::PgClient.new(db_config)
end
table_configs.each do |table_config|
write(
"#{bq_config['schema_dir']}/#{db_name}",
"#{table_config.name}.json",
sql_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,
db_config,
table_config,
sql_client.columns(table_config.name)
)
)
end
end
end
|