Skip to main content

python-mysql2postgresql

Project description

python-mysql2postgresql

Installation - pure Python

pip install python-mysql2postgresql

Usage via Python file

from mysql2postgresql import mysql2postgresql

a = mysql2postgresql()

# connect MySQL server
a.connect_mysql(
    host='localhost',
    port='3306',
    user='root',
    passwd='',
    db='database_name'
)

# connect PostgreSQL server
a.connect_postgresql(
    host='localhost',             
    port=5432,
    user='postgres',                                
    password='postgres',                     
    database='database_name'
)  

# shortlist of tables to copy data from -> default all tables in a database
a.tables = ['table1', 'table2', ...]

# shortlist of tables to exclude  -> default empty
a.without = ['table3', 'table4', ...]

# manual limit to query data -> default 10000 
# not limit -> a.limit = 0 
a.limit = 10000

# run the program
a.run()   

Usage via command line

You can copy example above or create a demo.py file from example using:

python -m mysql2postgresql export_example

You can convert all tables in a MySQL database to PostgreSQL using a command:

python -m mysql2postgresql convert\
    --mysql_host=localhost\
    --mysql_port=3306\
    --mysql_user=root\
    --mysql_password=\
    --mysql_database=db_name\
    --postgresql_host=localhost\
    --postgresql_port=5432\
    --postgresql_user=postgres\
    --postgresql_password=postgres\
    --postgresql_database=database_name

Configuration from standard environment variables is supported reading $MYSQL_HOST, $MYSQL_USER, $MYSQL_PWD, $PGHOST, $PGUSER, $PGPASSWORD.

With above present you only need to add name of the database to convert.

export CONVERT_DATABASE=mydatabase
python -m mysql2postgresql convert

You can copy data only (without a schema) if you already have corresponding Postgres db schema from migrations etc. Turning off schema creation also turns off dropping postgres tables before they get recreated.

export CONVERT_SCHEMA=0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-mysql2postgresql-0.1.2.tar.gz (5.1 kB view details)

Uploaded Source

File details

Details for the file python-mysql2postgresql-0.1.2.tar.gz.

File metadata

File hashes

Hashes for python-mysql2postgresql-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e9e88e677acb058e989c1d8c1e6de068c72d82dd17c3c1fea9c594ccaade05d1
MD5 ba373d9539b0c1fd6311e31226795bc3
BLAKE2b-256 2529bcdf9fabcd5d2a50d9f7ce8543af1978ab23cdbc225275561f7908c8056b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page