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