NativeDatabase constructor

NativeDatabase(
  1. File file, {
  2. bool logStatements = false,
  3. DatabaseSetup? setup,
  4. bool enableMigrations = true,
  5. bool cachePreparedStatements = _cacheStatementsByDefault,
})

Creates a database that will store its result in the file, creating it if it doesn't exist.

If logStatements is true (defaults to false), generated sql statements will be printed before executing. This can be useful for debugging.

The cachePreparedStatements flag (defaults to false) controls whether drift will cache prepared statement objects, which improves performance as sqlite3 doesn't have to parse statements that are frequently used multiple times. This will be the default in the next minor drift version.

The optional setup function can be used to perform a setup just after the database is opened, before drift is fully ready. This can be used to add custom user-defined sql functions or to provide encryption keys in SQLCipher implementations.

By default, drift runs migrations defined in your database class to create tables when the database is first opened or to alter when when your schema changes. This uses the user_version sqlite3 pragma, which is compared against the schemaVersion getter of the database. If you want to manage migrations independently or don't need them at all, you can disable migrations in drift with the enableMigrations parameter.

Implementation

factory NativeDatabase(
  File file, {
  bool logStatements = false,
  DatabaseSetup? setup,
  bool enableMigrations = true,
  bool cachePreparedStatements = _cacheStatementsByDefault,
}) {
  return NativeDatabase._(
      _NativeDelegate(
        file,
        setup,
        enableMigrations,
        cachePreparedStatements,
      ),
      logStatements);
}