Created: 2008-12-04 11:46
Updated: 2019-02-25 14:28
License: mit

mysql-to-postgres - MySQL to PostgreSQL Data Translation

Build Status Dependency Status

MRI or jruby supported. The minimum Ruby version supported in master branch is 2.1.7, and the next release will have the same requirement.

With a bit of a modified rails database.yml configuration, you can integrate mysql-to-postgresinto a project.


Currently failing, see #81...

Via RubyGems

gem install mysqltopostgres

From source

git clone
cd mysql2postgres
bundle install
gem build mysqltopostgres.gemspec
sudo gem install mysqltopostgres-0.3.1.gem

Sample Configuration

Configuration is written in YAML format and passed as the first argument on the command line.

default: &default
  adapter: jdbcpostgresql
  encoding: unicode
  pool: 4
  username: terrapotamus
  password: default

development: &development
  <<: *default
  database: default_development

test: &test
  <<: *default
  database: default_test

production: &production
  <<: *default
  database: default_production

mysql_data_source: &pii
  hostname: localhost
  port: 3306
  socket: /tmp/mysqld.sock
  username: username
  password: default
  database: awesome_possum

    <<: *pii

      <<: *production
      <<: *test
      <<: *development

  - countries
  - samples
  - universes
  - variable_groups
  - variables
  - sample_variables

  # If suppress_data is true, only the schema definition will be exported/migrated, and not the data
  suppress_data: false

  # If suppress_ddl is true, only the data will be exported/imported, and not the schema
  suppress_ddl: true

  # If force_truncate is true, forces a table truncate before table loading
  force_truncate: false

  preserve_order: true

  remove_dump_file: true

  dump_file_directory: /tmp

  report_status: json    # false, json, xml

  # If clear_schema is true, the public schema will be recreated before conversion
  # The import will fail if both clear_schema and suppress_ddl are true.
  clear_schema: false

Please note that the MySQL connection will be using socket in case the host is not defined (nil) or it is 'localhost'.



Licensed under the MIT license.

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more