fromMySqlError static method
Map a MySQL error to a PrismaException.
Implementation
static PrismaException fromMySqlError(
String message, {
int? errorCode,
String? constraintName,
Object? originalError,
}) {
switch (errorCode) {
case 1044: // Access denied for user
case 1045: // Access denied (using password)
return AuthenticationException(
message,
originalError: originalError,
);
case 1049: // Unknown database
case 2002: // Can't connect to MySQL server
case 2003: // Can't connect to MySQL server on host
return ConnectionException(
message,
originalError: originalError,
);
case 1062: // Duplicate entry
return UniqueConstraintException(
message,
constraintName: constraintName,
originalError: originalError,
);
case 1451: // Cannot delete or update a parent row (FK)
case 1452: // Cannot add or update a child row (FK)
return ForeignKeyException(
message,
constraintName: constraintName,
originalError: originalError,
);
case 1048: // Column cannot be null
return ConstraintException(
message,
constraintType: 'not_null',
originalError: originalError,
);
case 4031: // Query timeout
return QueryTimeoutException(
message,
originalError: originalError,
);
default:
return InternalException(
message,
originalError: originalError,
context: {'errorCode': errorCode},
);
}
}