validateDatabaseSchema method

Future<void> validateDatabaseSchema({
  1. required CommonSqlite3 sqlite3,
  2. ValidationOptions options = const common.ValidationOptions(),
  3. @Deprecated('Use field in ValidationOptions instead') bool? validateDropped,
})

Compares and validates the schema of the current database with what the generated code expects.

When changing tables or other elements of your database schema, you need to increate your GeneratedDatabase.schemaVersion and write a migration to transform your existing tables to the new structure.

For queries, drift always assumes that your database schema matches the structure of your defined tables. This isn't the case when you forget to write a schema migration, which can cause all kinds of problems later.

For this reason, the validateDatabaseSchema method can be used in your database, (perhaps in a MigrationStrategy.beforeOpen callback) to verify that your database schema is what drift expects.

The common.ValidationOptions can be used to make the schema validation more strict (e.g. by enabling common.ValidationOptions.validateDropped to ensure that no old tables continue to exist if they're not referenced in the new schema) or more lenient (e.g. by disabling common.ValidationOptions.validateColumnConstraints).

This variant of validateDatabaseSchema is only supported on the web as a platform.

Implementation

Future<void> validateDatabaseSchema({
  required CommonSqlite3 sqlite3,
  common.ValidationOptions options = const common.ValidationOptions(),
  @Deprecated('Use field in ValidationOptions instead') bool? validateDropped,
}) async {
  await verifyDatabase(
    this,
    options.applyDeprecatedValidateDroppedParam(validateDropped),
    () => WasmDatabase.inMemory(sqlite3),
  );
}