All versions since 4.0.0
4.0.0
Added
- Added plugin manifest to allow for automatic registration of the provider coming in `NSchema 4.0.0.
4.3.0
Added
- Data migrations. Supports the
MIGRATION … FORdata migrations introduced inNSchema.Core4.3.
5.0.0
Tracks the NSchema.Core 5.0.0 rearchitecture (lockstep major versioning). See the core changelog for the engine-wide changes; the provider-facing ones are below.
Added
newasks which file to use. The plugin declares the database file as a scaffolding question and composes the answer into theconnection_stringit writes.
Changed
UseSqlite(...)replacesUseSqliteSchema(...), andUseSqliteDialect()replacesUseSqliteGenerator().- Introspection implements
IDatabaseIntrospector(the core seam replacingISchemaProvider) and returns the newNSchema.Modelschema model. - SQL generation is a
SqlDialect(the core seam replacingISqlGenerator), registered viaUseSqliteDialect(). - Unsupported operations are error diagnostics now. Actions SQLite cannot express (in-place column changes, constraint changes on an existing table, sequences, enums, routines, grants, materialized views, …) surface as errors on the plan result instead of throwing
NotSupportedException, so you always get the complete plan. - Comment changes are skipped with a warning. SQLite has no
COMMENT ON; a declared comment previously emitted no SQL silently, and now carries a warning diagnostic explaining why it never converges. - The plugin is configured by a
DATABASEstatement (replacing thePROVIDERblock), and its scaffold template no longer pins a version — the host owns thePLUGINdeclaration.
5.1.0
Changed
mainis reported as a schema SQLite provides. It is a container rather than something a migration creates, and declaring it is a warning.
5.2.0
Added
- Type references are never checked for existence. SQLite accepts any type name — a column’s type is advisory — so the provider now declares this (
SqliteSqlEquivalence.ValidatesTypeNames), and a plan resolves every type reference rather than hedging about names it cannot verify.
5.3.0
Changed
- A create is a create.
CREATE VIEWno longer drops an existing view first: the unconditional drop-and-create renders only for the new replace action, where the plan knows the view exists. A create colliding with a view the plan didn’t know about now fails loudly instead of silently overwriting it.
5.3.1
Fixed
intcolumns render asINTEGER. Only that exact spelling makes a SQLite primary key the rowid alias, and an introspectedINTEGERparses to the model’sint— so the previousintrendering quietly changed a table’s shape on a round trip.
5.4.0
Added
- XML indexes are reported. SQLite has no XML type, so nothing to shred and no node table to index.
- Schema binding and view indexes are reported. SQLite re-parses a view at each use and stores nothing to index, so a declaration that binds a view to its schema or puts an index on one is now an error diagnostic on the plan rather than something the plan quietly drops.
5.5.0
Added
SupportsRestrictis declared, soRESTRICTis rendered rather than dropped.
Changed
- The build now writes the full dependency closure beside the assembly (
CopyLocalLockFileAssemblies), so adotnet buildof this project can be loaded directly byPLUGIN ( path = '...' )without being packed first. Package contents are unchanged.
Fixed
RESTRICTis no longer parsed asNO ACTION. The DDL parser recognisedCASCADE,SET NULLandSET DEFAULTand let everything else fall through, so a foreign key declaringRESTRICTcame back declaring nothing.- Generated columns are no longer all
STORED. Sqlite defaults toVIRTUAL, and the dialect emittedSTOREDunconditionally, so a virtual column round-tripped as a stored one.
5.5.1
Fixed
- Documentation is reported once, not once per action. Sqlite records no comment anywhere, so it now declares
SupportsComments = falseand renders the comment actions as nothing.
Versioning policy
This package uses lockstep major versioning with the NSchema.Core package: NSchema.Sqlite X.*.* requires NSchema.Core X.*.*, so version compatibility is always clear.
As a consequence, breaking changes that are specific to this provider (rather than the core API) are signalled by a minor version bump rather than a major one, and called out explicitly in this changelog.
5.5.2 Latest
Fixed
- A stored generated column is no longer read back as virtual.