class Scheman::Rails::Applier
Constants
- DEFAULT_SCHEMA_MESSAGE
Public Class Methods
call()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 6 def self.call new.call end
Public Instance Methods
call()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 10 def call execute_sql create_schema_file end
Private Instance Methods
command()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 69 def command "mysql " + command_options.join(" ") end
command_options()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 77 def command_options result = [] result.concat([database]) if has_database? 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
create_schema_file()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 25 def create_schema_file unless after_schema_pathname.exist? after_schema_pathname.open("w") do |io| io.puts DEFAULT_SCHEMA_MESSAGE end end end
diff()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 61 def diff dumper.result end
dumper()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 65 def dumper @dumper ||= Scheman::Rails::Dumper.new end
error_message()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 57 def error_message result[1] end
execute_sql()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 17 def execute_sql if has_error? abort(error_message) elsif executed_sql.present? puts executed_sql end end
executed_sql()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 33 def executed_sql @executed_sql ||= begin result = [] unless has_database? result << create_database_statement result << use_database_steatement end result << diff result.join("\n\n") end end
has_database?()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 73 def has_database? !dumper.has_unknown_database_error? end
has_error?()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 53 def has_error? result[2] != 0 end
result()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 45 def result @result ||= Open3.capture3(command, stdin_data: executed_sql) end
result_message()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 49 def result_message result[0] end
use_database_steatement()
click to toggle source
# File lib/scheman/rails/commands/applier.rb, line 88 def use_database_steatement "USE `#{database}`;" end