Skip to main content

A simple Python tool to transfer data from SQLite 3 to MySQL

Project description

PyPI Downloads PyPI - Python Version GitHub license Code style: black Codacy Badge Build Status codecov GitHub stars

SQLite3 to MySQL

A simple Python tool to transfer data from SQLite 3 to MySQL.

I originally wrote this simple program as a standalone script and published it as a gist as an answer to this Stack Overflow question. Since then quite some people have taken interest in it since it's so simple and effective. Therefore I finally moved my lazy bones and made a GitHub repository :octopus:.

How to run

pip install sqlite3-to-mysql
sqlite3mysql --help

Usage

Usage: sqlite3mysql [OPTIONS]

Options:
  -f, --sqlite-file PATH     SQLite3 db file  [required]
  -d, --mysql-database TEXT  MySQL database name  [required]
  -u, --mysql-user TEXT      MySQL user  [required]
  -p, --mysql-password TEXT  MySQL password
  -h, --mysql-host TEXT      MySQL host. Defaults to localhost.
  -P, --mysql-port INTEGER   MySQL port. Defaults to 3306.
  --mysql-integer-type TEXT  MySQL default integer field type. Defaults to
                             INT(11).
  --mysql-string-type TEXT   MySQL default string field type. Defaults to
                             VARCHAR(255).
  -c, --chunk INTEGER        Chunk reading/writing SQL records
  -l, --log-file PATH        Log file
  --help                     Show this message and exit.

Testing

In order to run the test suite run these commands using a Docker MySQL image.

Requires a running Docker instance!

  • using Python 2.7
git clone https://github.com/techouse/sqlite3-to-mysql
cd sqlite3-to-mysql
virtualenv -p $(which python2) env
source env/bin/activate
pip install -e .
pip install -r requirements_dev.txt
tox
  • using Python 3.5+
git clone https://github.com/techouse/sqlite3-to-mysql
cd sqlite3-to-mysql                   
python3 -m venv env
source env/bin/activate
pip install -e .
pip install -r requirements_dev.txt
tox

Note

After a LONG time I finally found the time to write the complimentary script to transfer MySQL to SQLite3. Check it out :)

Additional note

Python 3.8 is currently not supported because at the moment of writing the most recent version of MySQL Connector/Python v8.0.17 still contains a reference to a feature deprecated in Python 3.5 and removed in Python 3.8:

mysql/connector/connection.py:126: DeprecationWarning: dist() and linux_distribution() functions are deprecated in Python 3.5

Check the failing build for yourself.

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

sqlite3-to-mysql-1.2.14.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

sqlite3_to_mysql-1.2.14-py2.py3-none-any.whl (10.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sqlite3-to-mysql-1.2.14.tar.gz.

File metadata

  • Download URL: sqlite3-to-mysql-1.2.14.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for sqlite3-to-mysql-1.2.14.tar.gz
Algorithm Hash digest
SHA256 5a884ee0afc6cbdc083054c6537afa3b851eb3f7278d2da54a5d06b54d364a63
MD5 bc6fcd9709e884472e54c1166ec9ba46
BLAKE2b-256 6b145b6f2687b680fe87c2782553aa3f43898aa80158ac1fbb94d30b890bea1d

See more details on using hashes here.

File details

Details for the file sqlite3_to_mysql-1.2.14-py2.py3-none-any.whl.

File metadata

  • Download URL: sqlite3_to_mysql-1.2.14-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for sqlite3_to_mysql-1.2.14-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6f4366e57f3c27b7c8fffb081cd9cd76263e9b0972b3e4a45d8966d147d6abf8
MD5 126463e5701a3e1223d4bfe1bbf296cf
BLAKE2b-256 9b8870bdb232dffb53844e94e88baedc33c8dd0d9b9f063e19d202a3df1c5166

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