You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 547f1b3
Browse filesBrowse the repository at this point in the historyBrowse files
- store declared dependencies as diagnostic migration metadata
- preserve dependency order and optional-scope markers
- prevent dependent migrations from bypassing migration plans
- optimize dependency descriptors with readonly value semantics
- update migration tests and documentation
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -143,7 +143,7 @@ Migrations are applied in the order in which they are registered within each sco
143
143
144
144
Dependencies may reference required scopes or optional scopes. An optional-scope dependency is ignored only when the scope is neither registered in the plan nor present in migration history. This prevents migrations from ignoring schema changes left by a module that was previously installed but is not currently loaded.
145
145
146
-
Applied migrations are recorded in the `__nuext_migrations` table with a global history identifier, scope-local sequence, application time, and optional version information. This preserves the complete migration chronology while allowing the application core and independently installed modules to maintain separate migration chains.
146
+
Applied migrations are recorded in the `__nuext_migrations` table with a global history identifier, scope-local sequence, declared dependencies, application time, and optional version information. This preserves the complete migration chronology while allowing the application core and independently installed modules to maintain separate migration chains.
147
147
148
148
When a connection factory is used, the complete migration plan is executed within a synchronized transaction and is rolled back if any migration fails. A plan can also run within an existing `SQLiteDbContext`, allowing migrations and application operations to share the same caller-owned transaction.
Copy file name to clipboardExpand all lines: src/System/Data/SQLite/SQLiteDbMigrationExtensions.cs
+24-2Lines changed: 24 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -54,16 +54,21 @@ public static void MigrateScope(this IEnumerable<SQLiteDbMigration> migrations,
54
54
/// <param name="cancellationToken">A token to monitor for cancellation requests.</param>
55
55
/// <exception cref="ArgumentNullException"><paramref name="migrations"/> or <paramref name="createConnection"/> is <see langword="null"/>.</exception>
56
56
/// <exception cref="ArgumentException"><paramref name="scope"/> is <see langword="null"/>, empty, or consists only of white-space characters.</exception>
57
+
/// <exception cref="DbMigrationException">A migration declares dependencies and must be executed through <see cref="SQLiteDbMigrationPlan"/>, or the migration configuration or applied history is invalid.</exception>
@@ -128,16 +133,33 @@ public static void MigrateScope(this IEnumerable<SQLiteDbMigration> migrations,
128
133
/// <remarks>
129
134
/// The caller owns the database context and is responsible for committing or rolling back its transaction.
130
135
/// </remarks>
136
+
/// <exception cref="DbMigrationException">A migration declares dependencies and must be executed through <see cref="SQLiteDbMigrationPlan"/>, or the migration configuration or applied history is invalid.</exception>
0 commit comments