diff --git a/drizzle-kit/src/serializer/mysqlSerializer.ts b/drizzle-kit/src/serializer/mysqlSerializer.ts index 322d8957f8..1293f3c1d5 100644 --- a/drizzle-kit/src/serializer/mysqlSerializer.ts +++ b/drizzle-kit/src/serializer/mysqlSerializer.ts @@ -862,12 +862,16 @@ export const fromDatabase = async ( const tableSchema = idxRow['TABLE_SCHEMA']; const tableName = idxRow['TABLE_NAME']; const constraintName = idxRow['INDEX_NAME']; - const columnName: string = idxRow['COLUMN_NAME']; + const columnName: string | null = idxRow['COLUMN_NAME']; const isUnique = idxRow['NON_UNIQUE'] === 0; const tableInResult = result[tableName]; if (typeof tableInResult === 'undefined') continue; + // MySQL 8+ functional/expression indexes have COLUMN_NAME = NULL. + // Skip these since Drizzle doesn't support expression indexes yet. + if (columnName === null) continue; + // if (tableInResult.columns[columnName].type === "serial") continue; indexesCount += 1;