Sha256: 57dc7dff21ff2bf19966d9c5c042180be6a4952fbab369ce5baaf2ac13c9e7f7
Contents?: true
Size: 1.05 KB
Versions: 25
Compression:
Stored size: 1.05 KB
Contents
#!/usr/bin/env ruby def usage puts <<EOT Split sync DDL file into multiple files Usage: split_sync_ddl.rb <ddl-file-path> [<num-tables-per-file(default:50)>] ex) split_sync_ddl ct20160722_01.sql 10 This command generates ct20160722_01.sql_0 ct20160722_01.sql_1 ct20160722_01.sql_2 .... EOT exit 1 end @original_ddl = ARGV[0] unless @original_ddl usage end unless File.exists?(@original_ddl) $stderr.puts "Error! File doesn't exist - #{@original_ddl}" exit 1 end @num_tables_per_file = ARGV[1] || 50 @file_no = 0 def out_file_name(file_no) "#{@original_ddl}_#{file_no}" end def save_file(lines) fn = out_file_name(@file_no) content = lines.kind_of?(Array) ? lines.join : lines.to_s IO.write(fn, content) @file_no += 1 end SEPARATOR = "BEGIN;\n" def main all_blocks = IO.read(@original_ddl).split(SEPARATOR) first_block = all_blocks.shift save_file(first_block) all_blocks.each_slice(@num_tables_per_file) do |blocks| content = blocks.collect{|block| "#{SEPARATOR}#{block}"}.join save_file(content) end end main
Version data entries
25 entries across 25 versions & 1 rubygems