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]

  Transfer SQLite to MySQL using the provided CLI options.

Options:
  -f, --sqlite-file PATH      SQLite3 database file  [required]
  -t, --sqlite-tables TEXT    Transfer only these specific tables (space
                              separated table names). Implies --without-
                              foreign-keys which inhibits the transfer of
                              foreign keys.
  -X, --without-foreign-keys  Do not transfer foreign keys.
  -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 :)

Project details


Release history Release notifications | RSS feed

This version

1.3.3

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.3.3.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlite3_to_mysql-1.3.3-py2.py3-none-any.whl (12.4 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: sqlite3-to-mysql-1.3.3.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.7

File hashes

Hashes for sqlite3-to-mysql-1.3.3.tar.gz
Algorithm Hash digest
SHA256 12f7c8a5fa6220f2313d374620d757b8b24f6bc38783d0cf3c9db687b405bf13
MD5 23593216d52e1d871b1c781e2025613e
BLAKE2b-256 51b7a30743408afa01dc0e30e1ffe3dbe7631c8702d000d55d1de1719a58f50d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlite3_to_mysql-1.3.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.7

File hashes

Hashes for sqlite3_to_mysql-1.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bb57fa2733b10ca3990110c8376f11eab7e2989b7800f60265a86630d1a5143b
MD5 c84582e8f1dd492ab1935e2bf38b4b03
BLAKE2b-256 3819d5e457df1ddcaede02bcd4ed054fb01f6b6afe429cc3a28c882f3ecb761e

See more details on using hashes here.

Supported by

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