SQL Converter converts MariaDB/MySQL .sql dump files into SQLite-compatible SQL in the browser.
Live app: https://dominosaurs.github.io/sql-converter/
MariaDB and MySQL dumps often contain syntax that SQLite cannot import directly: backtick identifiers, AUTO_INCREMENT, engine options, charset/collation options, MariaDB dump directives, and MySQL-style escaped strings.
SQL Converter rewrites the common parts of those dumps so the output can be imported into SQLite with fewer manual edits.
Conversion runs locally in your browser.
- The input dump is read from your disk.
- The converted file is written back to your disk.
- The app does not upload your database dump to a server.
Large-file conversion uses the File System Access API so output can be streamed directly to disk.
Recommended browsers:
- Chrome
- Edge
Firefox and Safari may not support the required showSaveFilePicker API for large-file direct-to-disk conversion.
- Open https://dominosaurs.github.io/sql-converter/
- Select a MariaDB/MySQL
.sqldump file. - Choose where to save the converted SQLite SQL file.
- Wait for conversion to finish.
- Import the generated
.sqlite.sqlfile with your SQLite client.
MariaDB/MySQL dump input:
CREATE TABLE `users` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `users` VALUES
(1,'O\'Connor');SQLite output:
CREATE TABLE "users" (
"id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" TEXT NOT NULL
);
INSERT INTO "users" VALUES
(1,'O''Connor');The converter is designed for common mysqldump, MariaDB dump, and phpMyAdmin-style SQL exports.
Currently handled:
CREATE TABLEDROP TABLEINSERT- Backtick identifiers to SQLite double-quoted identifiers
- MariaDB/MySQL integer, decimal, text, blob, date/time, enum/set, and JSON-like column types
AUTO_INCREMENTto SQLiteINTEGER PRIMARY KEY AUTOINCREMENT- Table-level primary keys
- Unique constraints
- Normal indexes as separate
CREATE INDEXstatements - Foreign key constraints
CHECK (json_valid(...))- MariaDB dump directives such as
SET,LOCK TABLES, andALTER TABLE ... DISABLE/ENABLE KEYS - MySQL escaped string values in inserts
- MySQL hex literals like
0xDEADBEEF
Generated string values use standard SQLite single-quoted strings:
'O''Connor'Multi-row inserts are preserved for performance.
This is a practical dump converter, not a full SQL parser or validator.
Known limits:
- Stored procedures are not supported.
- Triggers and views may need manual review.
- Generated columns may need manual review.
- Vendor-specific functions may need manual review.
- A single extremely large SQL statement can still be expensive, even though file reading/writing is streamed.
- SQLite client/importer behavior varies. Some GUI tools may have script execution bugs even when the generated SQL is valid SQLite.
If your SQLite GUI client fails to import a generated file, test the failing statement with another importer before assuming the SQL is invalid.
Recommended SQLite CLI import:
sqlite3 output.sqlite < converted.sqlite.sqlOr inside SQLite:
.read converted.sqlite.sqlThis project uses Bun.
bun install
bun run devRun checks:
bun run lint
bun test
bun run build