mysql-to-postgres - MySQL to PostgreSQL Data Translation
August 11, 2020 ยท View on GitHub
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.
Installation
Currently failing, see #81...
Via RubyGems
gem install mysqltopostgres
From source
git clone https://github.com/maxlapshin/mysql2postgres.git
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
host: 127.0.0.1
development: &development
<<: *default
database: default_development
test: &test
<<: *default
database: default_test
production: &production
<<: *default
database: default_production
mysql_data_source: &pii
host: localhost
port: 3306
socket: /tmp/mysqld.sock
username: username
password: default
database: awesome_possum
mysql2psql:
mysql:
<<: *pii
destination:
production:
<<: *production
test:
<<: *test
development:
<<: *development
tables:
- 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'.
Testing
License
Licensed under the MIT license.