Dynamic typing
Inspects actual column values during read and proposes a
strict MySQL target type in the type-mapping review — a
SQLite column declared INTEGER that holds text
in real rows is flagged so you pick VARCHAR
instead of taking the declaration at face value.
Generated keys
Maps SQLite INTEGER PRIMARY KEY /
AUTOINCREMENT (which is tied to
ROWID) to MySQL AUTO_INCREMENT on
the PK column, and reseeds above the loaded maximum key
value — so the application's next insert does not
collide.
Dates and booleans
Detects SQLite columns that store booleans as 0/1 integers
or dates as ISO-8601 text and maps them to MySQL
TINYINT(1) and DATETIME
respectively — overridable per column when the source
uses a non-standard date format.
Dialect differences
Rewrites SQLite double-quoted identifiers into backtick MySQL
form on the target, generates MySQL-flavored DDL (replacing
SQLite AUTOINCREMENT, pragmas, and transaction
syntax), and creates target columns as utf8mb4
so Unicode round-trips safely.
Triggers, CHECK constraints, and procedural code — out of scope
DBConvert's migration covers tables (with their fields,
types, defaults, and indexes), views, and foreign keys.
SQLite triggers, CHECK constraints, partial
indexes, expression indexes, and WITHOUT ROWID
table specifics stay in the source and are recreated
manually in MySQL where the equivalent feature exists
(MySQL 8.0+ supports CHECK constraints; partial
indexes do not have a direct MySQL equivalent and need
generated columns).