Skip to main content

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

Project description

PyPI PyPI - Python Version GitHub license Code style: black Build Status codecov

MySQL to SQLite3

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

This is the long overdue complimentary tool to my SQLite3 to MySQL. It transfers all data from a MySQL database to a SQLite3 database.

How to run

pip install mysql-to-sqlite3
mysql2sqlite --help

Usage

Usage: mysql2sqlite [OPTIONS]

Options:
  -f, --sqlite-file PATH     SQLite3 database 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.
  -c, --chunk INTEGER        Chunk reading/writing SQL records
  -l, --log-file PATH        Log file
  -V, --vacuum               Use the VACUUM command to rebuild the SQLite
                             database file, repacking it into a minimal amount
                             of disk space
  --use-buffered-cursors     Use MySQLCursorBuffered for reading the MySQL
                             database. This can be useful in situations where
                             multiple queries, with small result sets, need to
                             be combined or computed with each other.
  --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/mysql-to-sqlite3
cd mysql-to-sqlite3
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/mysql-to-sqlite3
cd mysql-to-sqlite3                   
python3 -m venv env
source env/bin/activate
pip install -e .
pip install -r requirements_dev.txt
tox

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.8:

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

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

mysql-to-sqlite3-1.2.3.tar.gz (9.4 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: mysql-to-sqlite3-1.2.3.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for mysql-to-sqlite3-1.2.3.tar.gz
Algorithm Hash digest
SHA256 c2d69438f38f82776d5e3487e4f9c0ca41e0ffa35cee1a04ab755d1f302bb1ec
MD5 29ee78a3dd946bf2ff90bc872663fd96
BLAKE2b-256 4af2b073eed7459501e5d11806abd2bb4ac6b3fbc6bcd3a1e558d0cdb85ef793

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