TableSchema constructor

TableSchema(
  1. String name, {
  2. required List<Column<Object?>> columns,
  3. List<String> primaryKey = const [],
  4. List<List<String>> uniqueKeys = const [],
  5. List<ForeignKey> foreignKeys = const [],
  6. List<IndexSchema> indexes = const [],
  7. List<CheckSchema> checks = const [],
})

Copies schema collections without opening or altering a database.

Implementation

TableSchema(
  this.name, {
  required List<Column<Object?>> columns,
  List<String> primaryKey = const [],
  List<List<String>> uniqueKeys = const [],
  List<ForeignKey> foreignKeys = const [],
  List<IndexSchema> indexes = const [],
  List<CheckSchema> checks = const [],
}) : columns = List.unmodifiable(columns),
     clientDefaults = List.unmodifiable(
       columns.where((c) => c.clientDefault != null),
     ),
     primaryKey = List.unmodifiable(primaryKey),
     uniqueKeys = List.unmodifiable(
       uniqueKeys.map(List<String>.unmodifiable),
     ),
     foreignKeys = List.unmodifiable([
       for (final key in foreignKeys)
         ForeignKey(
           List.unmodifiable(key.columns),
           key.target,
           List.unmodifiable(key.targetColumns),
           onDelete: key.onDelete,
         ),
     ]),
     checks = List.unmodifiable(checks),
     indexes = List.unmodifiable([
       for (final index in indexes)
         IndexSchema(
           index.name,
           List.unmodifiable(index.columns),
           unique: index.unique,
         ),
     ]);