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 🐙.
pip install sqlite3-to-mysql
sqlite3mysql --help
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).
-T, --use-fulltext Use FULLTEXT indexes on TEXT columns. Will throw
an error if your MySQL version does not support
InnoDB FULLTEXT indexes!
--with-rowid Transfer rowid columns.
-c, --chunk INTEGER Chunk reading/writing SQL records
-l, --log-file PATH Log file
-q, --quiet Quiet. Display only errors.
--version Show the version and exit.
--help Show this message and exit.
After a LONG time I finally found the time to write the complimentary script to transfer MySQL to SQLite3. Check it out :)