NativeDatabase constructor
- File file, {
- bool logStatements = false,
- DatabaseSetup? setup,
- bool enableMigrations = true,
- 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);
}