VersionedTable class
A drift table implementation that, instead of being generated, is constructed from individual fields
This allows the code generated for step-by-step migrations to be a lot smaller than the code typically generated by drift. Features like type converters or information about unique/primary keys are not present in these tables.
- Inheritance
-
- Object
- HasResultSet
- Table
- VersionedTable
- Mixed-in types
- Implementers
Constructors
-
VersionedTable({required String entityName, required bool isStrict, required bool withoutRowId, required DatabaseConnectionUser attachedDatabase, required List<
GeneratedColumn< columns, required List<Object> Function(String)>String> tableConstraints, String? alias}) - Create a table from the individual fields.
- VersionedTable.aliased({required VersionedTable source, required String? alias})
-
Create a table by copying fields from
source
and applying analias
.
Properties
-
$columns
→ List<
GeneratedColumn< Object> > -
All columns from this table or view.
final
-
$primaryKey
→ Set<
GeneratedColumn< Object> > -
The primary key of this table. Can be empty if no custom primary key has
been specified.
no setterinherited
- actualTableName → String
-
The name of the table in the database. Unlike aliasedName, this can not
be aliased.
no setteroverride
- aliasedName → String
-
The (potentially aliased) name of this table or view.
no setteroverride
- asDslTable → Table
-
Type system sugar. Implementations are likely to inherit from both
TableInfo and
Tbl
and can thus just return their instance.no setterinherited - attachedDatabase → DatabaseConnectionUser
-
The generated database instance that this view or table is attached to.
final
-
columnsByName
→ Map<
String, GeneratedColumn< Object> > -
Gets all $columns in this table or view, indexed by their (non-escaped)
name.
no setterinherited
-
customConstraints
→ List<
String> -
Custom table constraints that should be added to the table.
final
- dontWriteConstraints → bool
-
Drift will write some table constraints automatically, for instance when
you override primaryKey. You can turn this behavior off if you want to.
This is intended to be used by generated code only.
no setteroverride
- entityName → String
-
The (unalised) name of this entity in the database.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isStrict → bool
-
Whether this table is
STRICT
.final -
primaryKey
→ Set<
Column< Object> > -
Override this to specify custom primary keys:
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- tableName → String?
-
The sql table name to be used. By default, drift will use the snake_case
representation of your class name as the sql table name. For instance, a
Table class named
LocalSettings
will be calledlocal_settings
by default. You can change that behavior by overriding this method to use a custom name. Please note that you must directly return a string literal by using a getter. For instance@override String get tableName => 'my_table';
is valid, whereas@override final String tableName = 'my_table';
or@override String get tableName => createMyTableName();
is not.no setterinherited -
uniqueKeys
→ List<
Set< GeneratedColumn< >Object> > -
The unique key of this table. Can be empty if no custom primary key has
been specified.
no setterinherited
- withoutRowId → bool
-
Whether to append a
WITHOUT ROWID
clause in theCREATE TABLE
statement. This is intended to be used by generated code only.final
Methods
-
blob(
) → ColumnBuilder< Uint8List> -
Use this as the body of a getter to declare a column that holds arbitrary
data blobs, stored as an Uint8List. Example:
inherited
-
boolean(
) → ColumnBuilder< bool> -
Use this as the body of a getter to declare a column that holds bools.
Example (inside the body of a table class):
inherited
-
createAlias(
String alias) → VersionedTable -
Creates an alias of this table or view that will write the name
alias
when used in a query.override -
customType<
T extends Object> (UserDefinedSqlType< T> type) → ColumnBuilder<T> -
Defines a column with a custom
type
when used as a getter.inherited -
dateTime(
) → ColumnBuilder< DateTime> -
Use this as the body of a getter to declare a column that holds date and
time.
inherited
-
int64(
) → ColumnBuilder< BigInt> -
Use this as the body of a getter to declare a column that holds a 64-big
integer as a BigInt.
inherited
-
integer(
) → ColumnBuilder< int> -
Use this as the body of a getter to declare a column that holds integers.
inherited
-
intEnum<
T extends Enum> () → ColumnBuilder< int> -
Creates a column to store an
enum
classT
.inherited -
map(
Map< String, dynamic> data, {String? tablePrefix}) → QueryRow -
Maps the given row returned by the database into the fitting data class.
override
-
mapFromCompanion(
Insertable< QueryRow> companion, DatabaseConnectionUser database) → Future<QueryRow> -
Converts a
companion
to the real model class,D
.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
real(
) → ColumnBuilder< double> -
Use this as the body of a getter to declare a column that holds floating
point numbers. Example
inherited
-
text(
) → ColumnBuilder< String> -
Use this as the body of a getter to declare a column that holds strings.
Example (inside the body of a table class):
inherited
-
textEnum<
T extends Enum> () → ColumnBuilder< String> -
Creates a column to store an
enum
classT
.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
validateIntegrity(
Insertable< QueryRow> instance, {bool isInserting = false}) → VerificationContext -
Validates that the given entity can be inserted into this table, meaning
that it respects all constraints (nullability, text length, etc.).
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited