NativeDatabase.memory constructor
- bool logStatements = false,
- DatabaseSetup? setup,
- bool cachePreparedStatements = _cacheStatementsByDefault,
Creates an in-memory database won't persist its changes on disk.
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.memory({
bool logStatements = false,
DatabaseSetup? setup,
bool cachePreparedStatements = _cacheStatementsByDefault,
}) {
return NativeDatabase._(
_NativeDelegate(
null,
setup,
// Disabling migrations makes no sense for in-memory databases, which
// would always be empty otherwise. They will also not be read-only, so
// what's the point...
true,
cachePreparedStatements,
),
logStatements,
);
}