Class: SchemaFerry::Pipeline

Inherits:
Object
  • Object
show all
Defined in:
lib/schema_ferry/pipeline.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Pipeline

Returns a new instance of Pipeline.



5
6
7
# File 'lib/schema_ferry/pipeline.rb', line 5

def initialize(config)
  @config = config
end

Instance Method Details

#apply!Object



13
14
15
# File 'lib/schema_ferry/pipeline.rb', line 13

def apply!
  Target::RidgepoleRunner.new(@config.target_url).run(schemafile, dry_run: false)
end

#dry_runObject



9
10
11
# File 'lib/schema_ferry/pipeline.rb', line 9

def dry_run
  Target::RidgepoleRunner.new(@config.target_url).run(schemafile, dry_run: true)
end

#schemafileObject



17
18
19
20
21
# File 'lib/schema_ferry/pipeline.rb', line 17

def schemafile
  mysql_tables = Source::MysqlReader.new(@config.source_url).read_all
  pg_tables    = Converter::SchemaConverter.new(@config).convert(mysql_tables)
  Target::SchemafileRenderer.new.render(pg_tables)
end