module MysqlToPgDump::TasksHelper

Public Instance Methods

bash_confirm_input() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 10
def bash_confirm_input
  printf "Current env db data will be destroyed.\n".red
  printf "Are you sure? (y/n)\n"
  STDIN.gets.strip
end
clean_database() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 35
def clean_database
  task_names = %w(db:drop db:create db:migrate)
  task_names.each { |t| Rake::Task[t].invoke }
end
data_already_pulled?() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 16
def data_already_pulled?
  if %x{ls tmp}.split("\n").include? 'db_server_data'
    %x(ls tmp/db_server_data).split("\n").size == db_tables.size
  else
    false
  end
end
db_tables() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 55
def db_tables
  ActiveRecord::Base.connection.tables - ['schema_migrations']
end
dev() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 73
def dev
  show_db_info 'development'
end
file_to_save(table_name, location) click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 47
def file_to_save table_name, location
  "#{location}/#{production['database']}_#{table_name}.csv"
end
login_to_mysql() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 40
def login_to_mysql
  "mysql " \
  "--user=#{production['username']} " \
  "--password=#{production['password']} " \
  "#{production['database']}"
end
production() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 77
def production
  show_db_info 'production'
end
psql_import_query(table_name) click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 24
def psql_import_query table_name
  "\\copy #{table_name} from " \
  "'tmp/db_server_data/#{production['database']}_#{table_name}.csv' " \
  "delimiter E'\\t' null as 'NULL' csv header;"
end
psql_set_sequence(table_name) click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 30
def psql_set_sequence table_name
  "SELECT setval(pg_get_serial_sequence('#{table_name}', 'id'), " \
  "coalesce(max(id),0) + 1, false) FROM #{table_name};"
end
server_addr_input() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 5
def server_addr_input
  printf "Enter server address like 'server@123.4.5.6': "
  STDIN.gets.strip
end
show_db_info(env) click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 69
def show_db_info env
  Rails.application.config.database_configuration[env]
end
sql_select(table_name) click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 51
def sql_select table_name
  "SELECT * FROM #{table_name};"
end
uniq_dir_location() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 59
def uniq_dir_location
  "app/current/tmp/db_server_data/#{uniq_string}"
end
uniq_string() click to toggle source
# File lib/mysql_to_pg_dump/tasks_helper.rb, line 63
def uniq_string
  result = ""; numbers = ('0'..'9').to_a
  20.times { result << numbers.sample }
  result
end