convert_to_postgresql

in lib/backup/database.rb [49:84]


    def convert_to_postgresql
      mysql_dump_gz = db_file_name + '.mysql'
      psql_dump_gz = db_file_name + '.psql'
      drop_indexes_sql = File.join(db_dir, 'drop_indexes.sql')

      File.rename(db_file_name, mysql_dump_gz)

      $progress.print "Converting MySQL database dump to Postgres ... "
      statuses = Open3.pipeline(
        %W(gzip -cd 
        %W(python lib/support/mysql-postgresql-converter/db_converter.py - - 
        %W(gzip -1 -c),
        out: [psql_dump_gz, 'w', 0600]
      )

      if !statuses.compact.all?(&:success?)
        abort "mysql-to-postgresql-converter failed"
      end
      $progress.puts '[DONE]'.green
      FileUtils.rm_f(mysql_dump_gz) 

      $progress.print "Splicing in 'DROP INDEX' statements ... "
      statuses = Open3.pipeline(
        %W(lib/support/mysql-postgresql-converter/splice_drop_indexes 
        %W(gzip -1 -c),
        out: [db_file_name, 'w', 0600]
      )
      if !statuses.compact.all?(&:success?)
        abort "Failed to splice in 'DROP INDEXES' statements"
      end

      $progress.puts '[DONE]'.green
    ensure
      FileUtils.rm_f([mysql_dump_gz, psql_dump_gz, drop_indexes_sql])
    end