SQLite
Published 15 January 2025
- Verified Versions: 3.0, 3.7
- Maintainer: Redgate
Supported Versions and Support Levels
- For information regarding the supported version and support levels available, please see Supported Databases for Flyway
- For information regarding the Flyway features available, please see Flyway feature summary
Driver
| Item | Java (Xerial) |
|---|---|
| URL format | jdbc:sqlite:database |
| Ships with Flyway Command-line | Yes |
| Maven Central coordinates | org.xerial:sqlite-jdbc |
| Supported versions | 3.7 and later |
| Default Java class | org.sqlite.JDBC |
SQL Script Syntax
- Standard SQL syntax with statement delimiter ;
- Triggers with
BEGIN ... END;block
Compatibility
- DDL exported by SQLite can be used unchanged in a Flyway migration
- Any SQLite SQL script executed by Flyway, can be executed by the SQLite tools (after the placeholders have been replaced)
Example
/* Single line comment */
CREATE TABLE test_data (
value VARCHAR(25) NOT NULL PRIMARY KEY
);
/*
Multi-line
comment
*/
-- Sql-style comment
-- Placeholder
INSERT INTO ${tableName} (name) VALUES ('Mr. T');
CREATE TRIGGER update_customer_address UPDATE OF address ON customers
BEGIN
UPDATE orders SET address = new.address WHERE customer_name = old.name;
END;
Limitations
- No concurrent migration as SQLite does not support
SELECT ... FOR UPDATElocking - No support for multiple schemas or changing the current schema, as SQLite doesn't support schemas
- No support for
CREATE TRANSACTIONandCOMMITstatements within a migration, as SQLite doesn't support nested transactions