class Physique::FluentMigrator::Cmd

Attributes

parameters[R]

Public Class Methods

new(opts) click to toggle source
# File lib/physique/tasks/fluent_migrator.rb, line 11
def initialize(opts)
  @work_dir = opts[:work_dir]
  @executable = opts[:exe]
  set_parameters opts
end

Public Instance Methods

execute() click to toggle source
# File lib/physique/tasks/fluent_migrator.rb, line 17
def execute
  sh "#{@executable} #{@parameters.join(' ')}"
end

Private Instance Methods

set_parameters(opts) click to toggle source
# File lib/physique/tasks/fluent_migrator.rb, line 23
def set_parameters(opts)
  @parameters = @parameters || []
  @parameters << "--target #{opts.dll}"
  @parameters << "--provider #{opts.dialect}"
  @parameters << %Q{--connectionString "#{opts.connection_string}"}
  @parameters << "--task #{opts.task}"
  @parameters << "--namespace #{opts.namespace}" unless opts.namespace.blank?
  @parameters << "--nested #{opts.nested}" unless opts.namespace.blank? # Modifies the namespace option
  @parameters << "--output --outputFileName #{opts.output_file}" unless opts.output_file.blank?
  @parameters << '--preview true' if opts.preview
  @parameters << "--steps #{opts.steps}" if opts.task =~ /rollback/
  @parameters << "--version #{opts.version}" if opts.task =~ /^migrate($|:up)|^rollback:toversion$/
  @parameters << '--transaction-per-session' if opts.tps
end