mirror of https://github.com/AMT-Cheif/drift.git
Warn when using both primaryKey and autoIncrement()
This commit is contained in:
parent
ea9d72629f
commit
6b43a57911
|
@ -12,15 +12,24 @@ class TableParser {
|
|||
|
||||
final columns = (await _parseColumns(element)).toList();
|
||||
|
||||
final primaryKey = await _readPrimaryKey(element, columns);
|
||||
|
||||
final table = MoorTable(
|
||||
fromClass: element,
|
||||
columns: columns,
|
||||
sqlName: escapeIfNeeded(sqlName),
|
||||
dartTypeName: _readDartTypeName(element),
|
||||
primaryKey: await _readPrimaryKey(element, columns),
|
||||
primaryKey: primaryKey,
|
||||
declaration: DartTableDeclaration(element, base.step.file),
|
||||
);
|
||||
|
||||
if (primaryKey != null && columns.any((element) => element.hasAI)) {
|
||||
base.step.errors.report(ErrorInDartCode(
|
||||
message: "Tables can't override primaryKey and use autoIncrement()",
|
||||
affectedElement: element,
|
||||
));
|
||||
}
|
||||
|
||||
var index = 0;
|
||||
for (final converter in table.converters) {
|
||||
converter
|
||||
|
|
|
@ -196,6 +196,18 @@ void main() {
|
|||
expect(table.columns.any((column) => column.hasAI), isFalse);
|
||||
});
|
||||
|
||||
test('warns when using primaryKey and autoIncrement()', () async {
|
||||
await parse('PrimaryKeyAndAutoIncrement');
|
||||
|
||||
expect(
|
||||
dartStep.errors.errors,
|
||||
contains(
|
||||
isA<ErrorInDartCode>().having((e) => e.message, 'message',
|
||||
contains('override primaryKey and use autoIncrement()')),
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
test('recognizes aliases for rowid', () async {
|
||||
final table = await parse('WithAliasForRowId');
|
||||
final idColumn = table.columns.singleWhere((c) => c.name.name == 'id');
|
||||
|
|
Loading…
Reference in New Issue