SynchronizerDb mixin
Properties
allSchemaEntities
→ Iterable <DatabaseSchemaEntity >
A list of all DatabaseSchemaEntity
that are specified in this database.
no setter inherited
allTables
→ Iterable <TableInfo<Table , dynamic > >
A list of tables specified in this database.
no setter inherited
attachedDatabase
→ GeneratedDatabase
The database class that this user is attached to.
no setter inherited
connection
→ DatabaseConnection
The database connection used by this DatabaseConnectionUser
.
final inherited
executor
→ QueryExecutor
The executor to use when queries are executed.
no setter inherited
hashCode
→ int
The hash code for this object.
no setter inherited
migration
→ MigrationStrategy
Defines the migration strategy that will determine how to deal with an
increasing schemaVersion
. The default value only supports creating the
database by creating all tables known in this database. When you have
changes in your schema, you'll need a custom migration strategy to create
the new tables or change the columns.
no setter inherited
options
→ DriftDatabaseOptions
The DriftDatabaseOptions
to use for this database instance.
no setter inherited
resolvedEngine
→ DatabaseConnectionUser
A, potentially more specific, database engine based on the Zone context.
no setter inherited
runtimeType
→ Type
A representation of the runtime type of the object.
no setter inherited
schemaVersion
→ int
Specify the schema version of your database. Whenever you change or add
tables, you should bump this field and provide a migration
strategy.
no setter inherited
streamQueries
→ StreamQueryStore
Manages active streams from select statements.
no setter inherited
streamUpdateRules
→ StreamQueryUpdateRules
The collection of update rules contains information on how updates on
tables result in other updates, for instance due to a trigger.
no setter inherited
typeMapping
→ SqlTypes
A SqlTypes
mapping configuration to use when mapping values between Dart
and SQL.
late final inherited
Methods
$expandVar (int start , int amount )
→ String
Used by generated code to expand array variables.
inherited
$write (Component component , {bool ? hasMultipleTables , int ? startIndex })
→ GenerationContext
Will be used by generated code to resolve inline Dart components in sql by
writing the component
.
inherited
$writeInsertable (TableInfo<Table , dynamic > table , Insertable insertable , {int ? startIndex })
→ GenerationContext
Writes column names and VALUES
for an insert statement.
inherited
alias <T , D > (ResultSetImplementation<T , D > table , String alias )
→ T
Creates a copy of the table with an alias so that it can be used in the
same query more than once.
inherited
batch (FutureOr <void > runInBatch (Batch batch ) )
→ Future <void >
Runs statements inside a batch.
inherited
beforeOpen (QueryExecutor executor , OpeningDetails details )
→ Future <void >
A callbacks that runs after the database connection has been established,
but before any other query is sent.
inherited
cancelAllLocalChanges ()
→ Future <void >
close ()
→ Future <void >
Closes this database and releases associated resources.
inherited
concludeEntityLocalChanges (String entityType , String entityId , String entityRev )
→ Future <void >
concludeLocalChange (LocalChange localChange , {Object ? error })
→ Future <void >
createMigrator ()
→ Migrator
Creates a Migrator
with the provided query executor. Migrators generate
sql statements to create or drop tables.
inherited
createStream <T extends Object > (QueryStreamFetcher<T > stmt )
→ Stream <T >
Creates and auto-updating stream from the given select statement. This
method should not be used directly.
inherited
customInsert (String query , {List <Variable<Object > > variables = const [] , Set <ResultSetImplementation > ? updates })
→ Future <int >
Executes a custom insert statement and returns the last inserted rowid.
inherited
customSelect (String query , {List <Variable<Object > > variables = const [] , Set <ResultSetImplementation > readsFrom = const {} })
→ Selectable<QueryRow >
Creates a custom select statement from the given sql query
.
inherited
customSelectQuery (String query , {List <Variable<Object > > variables = const [] , Set <ResultSetImplementation > readsFrom = const {} })
→ Selectable<QueryRow >
Creates a custom select statement from the given sql query
. To run the
query once, use Selectable.get
. For an auto-updating streams, set the
set of tables the ready readsFrom
and use Selectable.watch
. If you
know the query will never emit more than one row, you can also use
getSingle
and watchSingle
which return the item directly without
wrapping it into a list.
inherited
customStatement (String statement , [List ? args ])
→ Future <void >
Executes the custom sql statement
on the database.
inherited
customUpdate (String query , {List <Variable<Object > > variables = const [] , Set <ResultSetImplementation > ? updates , UpdateKind? updateKind })
→ Future <int >
Executes a custom delete or update statement and returns the amount of
rows that have been changed.
You can use the updates
parameter so that drift knows which tables are
affected by your query. All select streams that depend on a table
specified there will then update their data. For more accurate results,
you can also set the updateKind
parameter to UpdateKind.delete
or
UpdateKind.update
. This is optional, but can improve the accuracy of
query updates, especially when using triggers.
inherited
customWriteReturning (String query , {List <Variable<Object > > variables = const [] , Set <ResultSetImplementation > ? updates , UpdateKind? updateKind })
→ Future <List <QueryRow > >
Runs a INSERT
, UPDATE
or DELETE
statement returning rows.
inherited
delete <T extends Table , D > (TableInfo<T , D > table )
→ DeleteStatement<T , D >
Starts a DeleteStatement
that can be used to delete rows from a table.
inherited
doWhenOpened <T > (FutureOr <T > fn (QueryExecutor e ) )
→ Future <T >
Performs the async fn
after this executor is ready, or directly if it's
already ready.
inherited
exclusively <T > (Future <T > action () )
→ Future <T >
Obtains an exclusive lock on the current database context, runs action
in it and then releases the lock.
inherited
getLastChangeId ()
→ Future <String ? >
getPendingLocalChanges ()
→ Future <List <LocalChange > >
insertLocalChange (LocalChange localChange )
→ Future <void >
into <T extends Table , D > (TableInfo<T , D > table )
→ InsertStatement<T , D >
Starts an InsertStatement
for a given table. You can use that statement
to write data into the table
by using InsertStatement.insert
.
inherited
markTablesUpdated (Iterable <TableInfo<Table , dynamic > > tables )
→ void
Marks the tables
as updated.
inherited
noSuchMethod (Invocation invocation )
→ dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyUpdates (Set <TableUpdate > updates )
→ void
Dispatches the set of updates
to the stream query manager.
inherited
select <T extends HasResultSet , R > (ResultSetImplementation<T , R > table , {bool distinct = false })
→ SimpleSelectStatement<T , R >
Starts a query on the given table.
inherited
selectExpressions (Iterable <Expression<Object > > columns )
→ Selectable<TypedResult >
Creates a select statement without a FROM
clause selecting columns
.
inherited
selectOnly <T extends HasResultSet , R > (ResultSetImplementation<T , R > table , {bool distinct = false })
→ JoinedSelectStatement<T , R >
Starts a complex statement on table
that doesn't necessarily use all of
table
's columns.
inherited
setLastReceivedChangeId (String ? id )
→ Future <void >
tableUpdates ([TableUpdateQuery query = const TableUpdateQuery.any() ])
→ Stream <Set <TableUpdate > >
Listen for table updates reported through notifyUpdates
.
inherited
toString ()
→ String
A string representation of this object.
inherited
transaction <T > (Future <T > action (), {bool requireNew = false })
→ Future <T >
Executes action
in a transaction, which means that all its queries and
updates will be called atomically.
inherited
update <Tbl extends Table , R > (TableInfo<Tbl , R > table )
→ UpdateStatement<Tbl , R >
Starts an UpdateStatement
for the given table. You can use that
statement to update individual rows in that table by setting a where
clause on that table and then use UpdateStatement.write
.
inherited