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
Release files for python-mysql2postgresql 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| python-mysql2postgresql-0.1.2.tar.gz | 5.1 kB | Details |
Release files / python-mysql2postgresql-0.1.2.tar.gz
| Download URL | python-mysql2postgresql-0.1.2.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e9e88e677acb058e989c1d8c1e6de068c72d82dd17c3c1fea9c594ccaade05d1
|
|
BLAKE2b-256 checksum How to use checksums |
2529bcdf9fabcd5d2a50d9f7ce8543af1978ab23cdbc225275561f7908c8056b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|