class Scheman::Rails::Dumper
Public Instance Methods
call()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 4 def call case when has_unexpected_dump_error? abort(dump_error_message) when str = result.presence puts str end end
diff()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 17 def diff @diff ||= Scheman::Diff.new( before: before_schema, after: after_schema, type: schema_type, ) end
has_unknown_database_error?()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 13 def has_unknown_database_error? has_dump_error? && /Unknown database/ === dump_error_message end
result()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 25 def result @result ||= statements.join("\n\n").rstrip end
Private Instance Methods
additional_command_options()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 90 def additional_command_options result = [] result.concat(["--default-character-set", encoding]) if encoding result.concat(["--host", host]) if host result.concat(["--password", password]) if password result.concat(["--port", port]) if port result.concat(["--socket", socket]) if socket result.concat(["--user", username]) if username result end
after_schema()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 66 def after_schema if after_schema_pathname.exist? after_schema_pathname.read else "" end end
before_schema()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 58 def before_schema if has_unknown_database_error? "" else dump_result end end
command()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 74 def command "mysqldump " + command_options.join(" ") end
command_options()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 78 def command_options default_command_options + additional_command_options end
default_command_options()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 82 def default_command_options [ database, "--compact", "--no-data", ] end
dump()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 38 def dump @dump ||= Open3.capture3(command) end
dump_error_message()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 50 def dump_error_message dump[1] end
dump_result()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 42 def dump_result dump[0] end
has_dump_error?()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 46 def has_dump_error? dump[2] != 0 end
has_unexpected_dump_error?()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 54 def has_unexpected_dump_error? has_dump_error? && !has_unknown_database_error? end
statements()
click to toggle source
# File lib/scheman/rails/commands/dumper.rb, line 31 def statements result = [] result << create_database_statement if has_unknown_database_error? result << diff result end