Converts MySQL dump to SQLite3 compatible dump (including MySQL
KEY xxxxx statements from the
Dump MySQL DB
mysqldump --skip-extended-insert --compact [options]... DB_name > dump_mysql.sql # or #mysqldump --no-data -u root -pmyPassword [options]... DB_name > dump_mysql.sql
Convert the dump to SQLite3 DB
./mysql2sqlite dump_mysql.sql | sqlite3 mysqlite3.db
sqlite3 might write something to stdout and stderr - e.g.
memory coming from
PRAGMA journal_mode = MEMORY; is not harmful)
The script is written in awk (tested with gawk, but should work with original awk, and the lightning fast mawk) and shall be fully POSIX compliant.
It's originally based on the newest fork (https://gist.github.com/bign8/9055981/05e65fd90c469c5eaa730823910c0c5f9de40ab4) of the original
mysql2sqlite.sh (https://gist.github.com/esperlu/943776/be469f0a0ab8962350f3c5ebe8459218b915f817) with the following patches:
COMMENTfield statement removal
CREATE DATABASEstatements (
USEstatements were already ignored)
INSERT INTO VALUES
IF NOT EXISTSor
TEMPORARYhas been detected (on unix sqlite3 treats temporary table name
FILESthe same as
files; in other words, sqlite3 doesn't issue any warning about cross-collisions between
COLLATE xxx_xxxx_xxstatements with
CONSTRAINT FOREIGN KEY(https://gist.github.com/BastienDurel/7f413d13d7b858aef31c/922be110d011b9da340ae545372214b597ad7b84)
Feel free to contribute (preferably by issuing a pull request)!