Skip to content

Commit ca15d94

Browse files
joeriakkermanJoeri Akkerman
andauthored
Hotfix: patch HasColumns again (#171)
* patch has constraint method for sql server driver * fix fetching constraint for foreign keys as well --------- Co-authored-by: Joeri Akkerman <[email protected]>
1 parent 9f27d70 commit ca15d94

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

migrator.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,18 @@ func (m Migrator) HasConstraint(value interface{}, name string) bool {
572572
}
573573

574574
return m.DB.Raw(
575-
`SELECT count(*) FROM sys.check_constraints as C inner join sys.tables as T on C.parent_object_id=T.object_id inner join INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name WHERE C.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ?;`,
575+
`SELECT count(*) FROM (
576+
SELECT C.name, T.name as table_name FROM sys.check_constraints as C
577+
INNER JOIN sys.tables as T on C.parent_object_id=T.object_id
578+
INNER JOIN INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name
579+
WHERE C.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ?
580+
UNION
581+
SELECT FK.name, T.name as table_name FROM sys.foreign_keys as FK
582+
INNER JOIN sys.tables as T on FK.parent_object_id=T.object_id
583+
INNER JOIN INFORMATION_SCHEMA.TABLES as I on I.TABLE_NAME = T.name
584+
WHERE FK.name = ? AND I.TABLE_NAME = ? AND I.TABLE_SCHEMA like ? AND I.TABLE_CATALOG = ?
585+
) as constraints;`,
586+
name, tableName, tableSchema, tableCatalog,
576587
name, tableName, tableSchema, tableCatalog,
577588
).Row().Scan(&count)
578589
})

0 commit comments

Comments
 (0)