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

Version Path
flydata-0.8.10.2 bin/split_sync_ddl.rb
flydata-0.8.10.1 bin/split_sync_ddl.rb
flydata-0.8.9.11 bin/split_sync_ddl.rb
flydata-0.8.10 bin/split_sync_ddl.rb
flydata-0.8.9 bin/split_sync_ddl.rb
flydata-0.8.8 bin/split_sync_ddl.rb
flydata-0.8.7 bin/split_sync_ddl.rb
flydata-0.8.6 bin/split_sync_ddl.rb
flydata-0.8.5 bin/split_sync_ddl.rb
flydata-0.8.4 bin/split_sync_ddl.rb
flydata-0.8.3 bin/split_sync_ddl.rb
flydata-0.8.2 bin/split_sync_ddl.rb
flydata-0.8.1 bin/split_sync_ddl.rb
flydata-0.8.0 bin/split_sync_ddl.rb
flydata-0.7.19 bin/split_sync_ddl.rb
flydata-0.7.18 bin/split_sync_ddl.rb
flydata-0.7.17 bin/split_sync_ddl.rb
flydata-0.7.16 bin/split_sync_ddl.rb
flydata-0.7.15 bin/split_sync_ddl.rb
flydata-0.7.14 bin/split_sync_ddl.rb