sql_engine 2.0.0
sql_engine: ^2.0.0 copied to clipboard
A thin yet powerful SQLite layer for Dart & Flutter.
2.0.0 - 2025-06-01 #
⚠️ Breaking Changes #
-
SqlColumn.typeis now required to be aSqlTypeenum instead of a string. This improves type safety and autocompletion.- Before:
SqlColumn(name: 'id', type: 'INTEGER') - After:
SqlColumn(name: 'id', type: SqlType.integer)
- Before:
-
Code generators have been updated to map
SqlTypeto proper SQL keywords inCREATE TABLE,ALTER TABLE, and index creation.
1.0.6 - 2025-05-04 #
Added #
enableLogparameter toSqlEngineDatabaseconstructor. This allows consumers of the package to disable or control logging, instead of relying on a global compile-time flag.final db = SqlEngineDatabase(enableLog: false);
[1.0.5] – 2025‑05‑03 #
Fixed #
- Mapper code‑gen
- Removed illegal trailing
?intoRow()for nullable fields (e.g. now emits
'locationLat': locationLat,instead of'locationLat': locationLat?,). - Null‑safe write for
DateTime(createdAt?.millisecondsSinceEpoch) and forbool(male == true ? 1 : null).
- Removed illegal trailing
Added #
@SqlIndexannotation- Define one or more indexes per table.
@SqlIndex(name: 'idx_user_email', columns: ['email']) - Generator now outputs a
createIndexeslist inside each*Tableclass. _onCreate()automatically executes allCREATE INDEXstatements after tables are created.
- Define one or more indexes per table.
Migration #
No breaking API changes. Re‑run build_runner to regenerate code and
indexes will be created automatically the next time the database is
initialized.
1.0.4 - 2025-05-03 #
Added #
- Introduced
@SqlIndexannotation for defining named indexes on tables. - Generator now reads and embeds indexes as part of the generated table class.
- Database applies all defined indexes automatically during
open()on initial creation. - Added
createIndexesoverride inSqlEngineTableto allow per-table index registration. - Added test support:
- Verify index creation using
PRAGMA index_list. - Verify index usage via
EXPLAIN QUERY PLAN.
- Verify index creation using
Tests #
- New tests verify:
- Index is present (
PRAGMA index_list) - Index is used (
EXPLAIN QUERY PLAN … USING INDEX)
- Index is present (
Example usage #
@SqlTable(tableName: 'users', version: 1)
@SqlIndex(name: 'idx_user_name', columns: ['name'])
class User { ... }
1.0.3 #
- Fixed analysis error.
- Added license