diff --git a/floor_generator/test/writer/database_writer_test.dart b/floor_generator/test/writer/database_writer_test.dart index abc90a60..31d532b4 100644 --- a/floor_generator/test/writer/database_writer_test.dart +++ b/floor_generator/test/writer/database_writer_test.dart @@ -47,20 +47,38 @@ void main() { await callback?.onOpen?.call(database); }, onUpgrade: (database, startVersion, endVersion) async { - await MigrationAdapter.runMigrations( - database, startVersion, endVersion, migrations); - + await _migrate( + database, migrations, startVersion, endVersion, callback); await callback?.onUpgrade?.call(database, startVersion, endVersion); }, onCreate: (database, version) async { - await database.execute( - 'CREATE TABLE IF NOT EXISTS `Person` (`id` INTEGER NOT NULL, `name` TEXT NOT NULL, PRIMARY KEY (`id`))'); - + await _create(database); await callback?.onCreate?.call(database, version); }, ); return sqfliteDatabaseFactory.openDatabase(path, options: databaseOptions); } + + Future _create(sqflite.Database database) async { + await database.execute( + 'CREATE TABLE IF NOT EXISTS `Person` (`id` INTEGER NOT NULL, `name` TEXT NOT NULL, PRIMARY KEY (`id`))'); + } + + Future _migrate(sqflite.Database database, List migrations, + int startVersion, int endVersion, Callback? callback) async { + try { + await MigrationAdapter.runMigrations( + database, + startVersion, + endVersion, + migrations, + ); + } on MissingMigrationException catch (_) { + throw StateError( + 'There is no migration supplied to update the database to the current version.' + ' Aborting the migration.', + ); + } } ''')); });