|
1 | 1 | import 'package:checks/checks.dart';
|
2 |
| -import 'package:drift/backends.dart'; |
3 | 2 | import 'package:drift/drift.dart';
|
4 | 3 | import 'package:drift/native.dart';
|
5 | 4 | import 'package:drift_dev/api/migrations_native.dart';
|
@@ -111,21 +110,15 @@ void main() {
|
111 | 110 | await before.customStatement('ALTER TABLE accounts ADD extra_column int');
|
112 | 111 | await check(verifier.migrateAndValidate(
|
113 | 112 | before, 2, validateDropped: true)).throws<SchemaMismatch>();
|
| 113 | + // Override the schema version. |
| 114 | + // TODO(upstream): Expose a better interface for testing this. |
| 115 | + await before.customStatement('PRAGMA user_version = 999;'); |
114 | 116 | await before.close();
|
115 | 117 |
|
116 | 118 | // We need a new connection because migrations are only run when the
|
117 | 119 | // database is first opened (see [DelegatedDatabase.ensureOpen]), and
|
118 | 120 | // running custom statements opens it.
|
119 | 121 | final after = AppDatabase(schema.newConnection());
|
120 |
| - // Trick the drift into believing that the schema version is |
121 |
| - // higher than it actually is, so that a downgrade migration is triggered. |
122 |
| - // This relies on some relevant implementation details: |
123 |
| - // - [DelegatedDatabase._runMigrations] |
124 |
| - // - [VerifierImplementation.migrateAndValidate] |
125 |
| - // TODO(upstream): Expose a better interface for testing this. |
126 |
| - await ((after.executor as DelegatedDatabase) |
127 |
| - .delegate.versionDelegate as DynamicVersionDelegate).setSchemaVersion(999); |
128 |
| - |
129 | 122 | await verifier.migrateAndValidate(after, 2, validateDropped: true);
|
130 | 123 | await after.close();
|
131 | 124 | });
|
|
0 commit comments