feat(pgsql): unique constraints on apply, matching unique index names, FK deferral
- migration writer now emits unique constraints (direct apply and live diff previously dropped them); idempotent via the existing DO block - unique constraint adopts a same-named model unique index with ADD CONSTRAINT ... UNIQUE USING INDEX instead of building a second index - dbml reader names unnamed unique indexes ukey_<table>_<cols> to match the unique constraint naming - foreign key deferral: Constraint.Deferrable/InitiallyDeferred are *bool (nil = unspecified, never diffed); writers emit DEFERRABLE, DEFERRABLE INITIALLY DEFERRED and NOT DEFERRABLE; live reader reads condeferrable and condeferred; dbml reader/writer support deferrable and initially deferred - tests and README/naming docs updated
This commit is contained in:
@@ -164,6 +164,7 @@ type CreateForeignKeyData struct {
|
||||
TargetColumns string
|
||||
OnDelete string
|
||||
OnUpdate string
|
||||
Deferral string // DEFERRABLE / DEFERRABLE INITIALLY DEFERRED / NOT DEFERRABLE, or empty
|
||||
}
|
||||
|
||||
// DropConstraintData contains data for drop constraint template
|
||||
@@ -238,6 +239,7 @@ type CreateUniqueConstraintData struct {
|
||||
TableName string
|
||||
ConstraintName string
|
||||
Columns string
|
||||
UsingIndex string // when set, promotes this existing unique index instead of building a new one
|
||||
}
|
||||
|
||||
// CreateCheckConstraintData contains data for create check constraint template
|
||||
@@ -259,7 +261,7 @@ type CreateForeignKeyWithCheckData struct {
|
||||
TargetColumns string
|
||||
OnDelete string
|
||||
OnUpdate string
|
||||
Deferrable bool
|
||||
Deferral string // DEFERRABLE / DEFERRABLE INITIALLY DEFERRED / NOT DEFERRABLE, or empty
|
||||
}
|
||||
|
||||
// SetSequenceValueData contains data for set sequence value template
|
||||
|
||||
Reference in New Issue
Block a user