VersionedTable class final
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
- ResultSetDsl
- Table
- VersionedTable
- Implemented types
- Mixed-in types
Constructors
-
VersionedTable({required String entityName, required bool isStrict, required bool withoutRowId, required List<
TableColumn< columns, required List<Object> Function()>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
sourceand applying analias.
Properties
- alias → String?
-
When created through withAlias, an alias for this result set.
final
- aliasOrName → String
-
If an alias is set, the alias. Otherwise, the entityName for this
result set.
no setterinherited
-
columns
→ List<
TableColumn< Object> > -
The columns of this result set.
final
-
columnsByName
→ Map<
String, SchemaColumn< Object> > -
All columns, indexed by their name.
latefinalinherited
-
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 default name of this result set (if no alias is set).
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
LocalSettingswill be calledlocal_settingsby 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< ?Column< >Object> > -
Unique constraints in this table.
no setterinherited
- withoutRowId → bool
-
Whether to append a
WITHOUT ROWIDclause in theCREATE TABLEstatement. This is intended to be used by generated code only.final
Methods
-
asSelfType(
) → VersionedTable -
Type-level hack: Result sets are supposed to inherit from the
Selftype they declare, so this returns justthis.override -
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
-
col<
T extends Object> (SqlType< T> type) → ColumnBuilder<T> -
Defines a column with a non-standard SQL
type.inherited -
createMapperFromPositions(
DriftDialect dialect, List< ColumnPosition> positions) → RawRow? Function(RawRow p1) -
Like createMapperToDart, but with positions already resolved.
override
-
createMapperToDart(
DriftDialect dialect, ResultSetStructure structure) → RawRow? Function(RawRow p1) -
Creates a function that, when receiving a DriftRow, extracts columns for
this result set into the mapped
Rowtype.inherited -
customType<
T extends Object> (SqlType< T> type) → ColumnBuilder<T> -
Defines a column with a custom
typewhen 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 values.
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
enumclassT.inherited -
json(
) → ColumnBuilder< DatabaseJson> -
Use this as the body of a getter to declare a column that holds strings.
Example (inside the body of a table class):
inherited
-
mapFromCompanion(
Insertable< RawRow> companion, DriftDialect dialect) → RawRow -
Converts a
companionto the real model class,Row.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
enumclassT.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
withAlias(
String alias) → VersionedTable -
Returns a new instance of this result set with
aliasset to the given value.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited