@supabase/pg-delta 1.0.0-alpha.10 → 1.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/declarative-export.js +12 -17
- package/dist/cli/commands/plan.js +10 -13
- package/dist/cli/commands/sync.js +8 -12
- package/dist/cli/utils/integrations.d.ts +30 -6
- package/dist/cli/utils/integrations.js +98 -6
- package/dist/core/change-utils.d.ts +9 -0
- package/dist/core/change-utils.js +71 -0
- package/dist/core/change.types.d.ts +22 -0
- package/dist/core/change.types.js +37 -1
- package/dist/core/depend.js +25 -0
- package/dist/core/expand-replace-dependencies.js +23 -0
- package/dist/core/export/file-mapper.d.ts +2 -2
- package/dist/core/integrations/filter/dsl.d.ts +78 -74
- package/dist/core/integrations/filter/dsl.js +127 -79
- package/dist/core/integrations/filter/flatten.d.ts +51 -0
- package/dist/core/integrations/filter/flatten.js +116 -0
- package/dist/core/integrations/integration-dsl.d.ts +17 -1
- package/dist/core/integrations/merge.d.ts +20 -0
- package/dist/core/integrations/merge.js +60 -0
- package/dist/core/integrations/serialize/dsl.d.ts +8 -12
- package/dist/core/integrations/serialize/dsl.js +2 -2
- package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
- package/dist/core/integrations/supabase.js +42 -8
- package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
- package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
- package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
- package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
- package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
- package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
- package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
- package/dist/core/objects/base.change.d.ts +12 -1
- package/dist/core/objects/base.change.js +10 -0
- package/dist/core/objects/base.model.d.ts +4 -1
- package/dist/core/objects/base.model.js +5 -2
- package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.alter.js +2 -2
- package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
- package/dist/core/objects/collation/changes/collation.comment.js +2 -2
- package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.create.js +1 -1
- package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
- package/dist/core/objects/collation/changes/collation.drop.js +1 -1
- package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
- package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
- package/dist/core/objects/domain/changes/domain.alter.js +8 -8
- package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.comment.js +2 -2
- package/dist/core/objects/domain/changes/domain.create.d.ts +3 -2
- package/dist/core/objects/domain/changes/domain.create.js +8 -2
- package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
- package/dist/core/objects/domain/changes/domain.drop.js +1 -1
- package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
- package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
- package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
- package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
- package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
- package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.alter.js +2 -2
- package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
- package/dist/core/objects/extension/changes/extension.comment.js +2 -2
- package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.create.js +4 -2
- package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
- package/dist/core/objects/extension/changes/extension.drop.js +1 -1
- package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
- package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
- package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
- package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
- package/dist/core/objects/index/changes/index.alter.js +3 -3
- package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
- package/dist/core/objects/index/changes/index.comment.js +2 -2
- package/dist/core/objects/index/changes/index.create.d.ts +2 -1
- package/dist/core/objects/index/changes/index.create.js +1 -1
- package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
- package/dist/core/objects/index/changes/index.drop.js +1 -1
- package/dist/core/objects/index/changes/index.types.d.ts +1 -0
- package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
- package/dist/core/objects/language/changes/language.alter.js +1 -1
- package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
- package/dist/core/objects/language/changes/language.comment.js +2 -2
- package/dist/core/objects/language/changes/language.create.d.ts +2 -1
- package/dist/core/objects/language/changes/language.create.js +1 -1
- package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
- package/dist/core/objects/language/changes/language.drop.js +1 -1
- package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
- package/dist/core/objects/language/changes/language.privilege.js +3 -3
- package/dist/core/objects/language/changes/language.types.d.ts +1 -0
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
- package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
- package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
- package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
- package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
- package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
- package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
- package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
- package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
- package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
- package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
- package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
- package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
- package/dist/core/objects/publication/changes/publication.alter.js +12 -7
- package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
- package/dist/core/objects/publication/changes/publication.comment.js +2 -2
- package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.create.js +1 -1
- package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
- package/dist/core/objects/publication/changes/publication.drop.js +1 -1
- package/dist/core/objects/publication/changes/publication.types.d.ts +1 -0
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
- package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
- package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
- package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
- package/dist/core/objects/role/changes/role.alter.js +2 -2
- package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
- package/dist/core/objects/role/changes/role.comment.js +2 -2
- package/dist/core/objects/role/changes/role.create.d.ts +2 -1
- package/dist/core/objects/role/changes/role.create.js +1 -1
- package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
- package/dist/core/objects/role/changes/role.drop.js +1 -1
- package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
- package/dist/core/objects/role/changes/role.privilege.js +5 -5
- package/dist/core/objects/role/changes/role.types.d.ts +1 -0
- package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.alter.js +2 -2
- package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
- package/dist/core/objects/rule/changes/rule.comment.js +2 -2
- package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.create.js +1 -1
- package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
- package/dist/core/objects/rule/changes/rule.drop.js +1 -1
- package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
- package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.alter.js +1 -1
- package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
- package/dist/core/objects/schema/changes/schema.comment.js +2 -2
- package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
- package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
- package/dist/core/objects/schema/changes/schema.drop.js +1 -1
- package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
- package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
- package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
- package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
- package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
- package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
- package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
- package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
- package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
- package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
- package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
- package/dist/core/objects/sequence/sequence.diff.js +12 -0
- package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
- package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
- package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
- package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
- package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
- package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
- package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
- package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
- package/dist/core/objects/table/changes/table.alter.js +107 -22
- package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
- package/dist/core/objects/table/changes/table.comment.js +6 -6
- package/dist/core/objects/table/changes/table.create.d.ts +2 -1
- package/dist/core/objects/table/changes/table.create.js +1 -1
- package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
- package/dist/core/objects/table/changes/table.drop.js +7 -1
- package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
- package/dist/core/objects/table/changes/table.privilege.js +3 -3
- package/dist/core/objects/table/changes/table.types.d.ts +1 -0
- package/dist/core/objects/table/table.diff.js +46 -1
- package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
- package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
- package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
- package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
- package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
- package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
- package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
- package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
- package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
- package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
- package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
- package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
- package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
- package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
- package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.alter.js +1 -1
- package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
- package/dist/core/objects/type/range/changes/range.comment.js +2 -2
- package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.create.js +1 -1
- package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
- package/dist/core/objects/type/range/changes/range.drop.js +1 -1
- package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
- package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
- package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
- package/dist/core/objects/type/type.types.d.ts +1 -0
- package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
- package/dist/core/objects/view/changes/view.alter.js +3 -3
- package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
- package/dist/core/objects/view/changes/view.comment.js +2 -2
- package/dist/core/objects/view/changes/view.create.d.ts +2 -1
- package/dist/core/objects/view/changes/view.create.js +1 -1
- package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
- package/dist/core/objects/view/changes/view.drop.js +1 -1
- package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
- package/dist/core/objects/view/changes/view.privilege.js +3 -3
- package/dist/core/objects/view/changes/view.types.d.ts +1 -0
- package/dist/core/objects/view/view.diff.js +24 -13
- package/dist/core/postgres-config.d.ts +2 -2
- package/dist/core/sort/custom-constraints.js +65 -1
- package/dist/core/sort/logical-sort.js +3 -24
- package/package.json +5 -1
- package/src/cli/commands/declarative-export.ts +19 -27
- package/src/cli/commands/plan.ts +14 -20
- package/src/cli/commands/sync.ts +8 -15
- package/src/cli/utils/integrations.test.ts +210 -3
- package/src/cli/utils/integrations.ts +134 -6
- package/src/core/catalog.snapshot.test.ts +11 -2
- package/src/core/change-utils.test.ts +61 -0
- package/src/core/change-utils.ts +73 -0
- package/src/core/change.types.ts +50 -0
- package/src/core/depend.ts +25 -0
- package/src/core/expand-replace-dependencies.test.ts +126 -1
- package/src/core/expand-replace-dependencies.ts +50 -0
- package/src/core/export/file-mapper.ts +7 -2
- package/src/core/integrations/filter/dsl.test.ts +299 -60
- package/src/core/integrations/filter/dsl.ts +208 -169
- package/src/core/integrations/filter/flatten.test.ts +282 -0
- package/src/core/integrations/filter/flatten.ts +150 -0
- package/src/core/integrations/integration-dsl.ts +17 -1
- package/src/core/integrations/merge.test.ts +128 -0
- package/src/core/integrations/merge.ts +72 -0
- package/src/core/integrations/serialize/dsl.test.ts +26 -7
- package/src/core/integrations/serialize/dsl.ts +8 -14
- package/src/core/integrations/serialize/serialize.types.ts +37 -0
- package/src/core/integrations/supabase.ts +42 -8
- package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
- package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
- package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
- package/src/core/objects/aggregate/changes/aggregate.types.ts +1 -0
- package/src/core/objects/base.change.ts +13 -1
- package/src/core/objects/base.model.test.ts +43 -0
- package/src/core/objects/base.model.ts +5 -2
- package/src/core/objects/collation/changes/collation.alter.ts +3 -2
- package/src/core/objects/collation/changes/collation.comment.ts +3 -2
- package/src/core/objects/collation/changes/collation.create.ts +2 -1
- package/src/core/objects/collation/changes/collation.drop.ts +2 -1
- package/src/core/objects/collation/changes/collation.types.ts +1 -0
- package/src/core/objects/domain/changes/domain.alter.ts +9 -8
- package/src/core/objects/domain/changes/domain.comment.ts +3 -2
- package/src/core/objects/domain/changes/domain.create.ts +19 -2
- package/src/core/objects/domain/changes/domain.drop.ts +2 -1
- package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
- package/src/core/objects/domain/changes/domain.types.ts +1 -0
- package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
- package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
- package/src/core/objects/event-trigger/changes/event-trigger.types.ts +1 -0
- package/src/core/objects/extension/changes/extension.alter.ts +3 -2
- package/src/core/objects/extension/changes/extension.comment.ts +3 -2
- package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
- package/src/core/objects/extension/changes/extension.create.ts +5 -2
- package/src/core/objects/extension/changes/extension.drop.ts +2 -1
- package/src/core/objects/extension/changes/extension.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
- package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
- package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +1 -0
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
- package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +1 -0
- package/src/core/objects/index/changes/index.alter.ts +4 -3
- package/src/core/objects/index/changes/index.comment.ts +3 -2
- package/src/core/objects/index/changes/index.create.ts +2 -1
- package/src/core/objects/index/changes/index.drop.ts +2 -1
- package/src/core/objects/index/changes/index.types.ts +1 -0
- package/src/core/objects/language/changes/language.alter.ts +2 -1
- package/src/core/objects/language/changes/language.comment.ts +3 -2
- package/src/core/objects/language/changes/language.create.ts +2 -1
- package/src/core/objects/language/changes/language.drop.ts +2 -1
- package/src/core/objects/language/changes/language.privilege.ts +4 -3
- package/src/core/objects/language/changes/language.types.ts +1 -0
- package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
- package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
- package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
- package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
- package/src/core/objects/materialized-view/changes/materialized-view.types.ts +1 -0
- package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
- package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
- package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
- package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
- package/src/core/objects/procedure/changes/procedure.types.ts +1 -0
- package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
- package/src/core/objects/publication/changes/publication.alter.ts +14 -7
- package/src/core/objects/publication/changes/publication.comment.ts +3 -2
- package/src/core/objects/publication/changes/publication.create.ts +2 -1
- package/src/core/objects/publication/changes/publication.drop.ts +2 -1
- package/src/core/objects/publication/changes/publication.types.ts +1 -0
- package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
- package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
- package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
- package/src/core/objects/rls-policy/changes/rls-policy.types.ts +1 -0
- package/src/core/objects/role/changes/role.alter.ts +3 -2
- package/src/core/objects/role/changes/role.comment.ts +3 -2
- package/src/core/objects/role/changes/role.create.ts +2 -1
- package/src/core/objects/role/changes/role.drop.ts +2 -1
- package/src/core/objects/role/changes/role.privilege.ts +6 -5
- package/src/core/objects/role/changes/role.types.ts +1 -0
- package/src/core/objects/rule/changes/rule.alter.ts +3 -2
- package/src/core/objects/rule/changes/rule.comment.ts +3 -2
- package/src/core/objects/rule/changes/rule.create.ts +2 -1
- package/src/core/objects/rule/changes/rule.drop.ts +2 -1
- package/src/core/objects/rule/changes/rule.types.ts +1 -0
- package/src/core/objects/schema/changes/schema.alter.ts +2 -1
- package/src/core/objects/schema/changes/schema.comment.ts +3 -2
- package/src/core/objects/schema/changes/schema.create.ts +3 -3
- package/src/core/objects/schema/changes/schema.drop.ts +2 -1
- package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
- package/src/core/objects/schema/changes/schema.types.ts +1 -0
- package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
- package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
- package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
- package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
- package/src/core/objects/sequence/changes/sequence.types.ts +1 -0
- package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
- package/src/core/objects/sequence/sequence.diff.ts +24 -2
- package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
- package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
- package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
- package/src/core/objects/subscription/changes/subscription.types.ts +1 -0
- package/src/core/objects/table/changes/table.alter.test.ts +38 -0
- package/src/core/objects/table/changes/table.alter.ts +123 -22
- package/src/core/objects/table/changes/table.comment.ts +7 -6
- package/src/core/objects/table/changes/table.create.ts +2 -1
- package/src/core/objects/table/changes/table.drop.ts +20 -1
- package/src/core/objects/table/changes/table.privilege.ts +4 -3
- package/src/core/objects/table/changes/table.types.ts +1 -0
- package/src/core/objects/table/table.diff.test.ts +121 -0
- package/src/core/objects/table/table.diff.ts +64 -1
- package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
- package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
- package/src/core/objects/trigger/changes/trigger.types.ts +1 -0
- package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
- package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
- package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
- package/src/core/objects/type/composite-type/changes/composite-type.types.ts +1 -0
- package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
- package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
- package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
- package/src/core/objects/type/enum/changes/enum.types.ts +1 -0
- package/src/core/objects/type/range/changes/range.alter.ts +2 -1
- package/src/core/objects/type/range/changes/range.comment.ts +3 -2
- package/src/core/objects/type/range/changes/range.create.ts +2 -1
- package/src/core/objects/type/range/changes/range.drop.ts +2 -1
- package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
- package/src/core/objects/type/range/changes/range.types.ts +1 -0
- package/src/core/objects/type/type.types.ts +1 -0
- package/src/core/objects/view/changes/view.alter.ts +4 -3
- package/src/core/objects/view/changes/view.comment.ts +3 -2
- package/src/core/objects/view/changes/view.create.ts +2 -1
- package/src/core/objects/view/changes/view.drop.ts +2 -1
- package/src/core/objects/view/changes/view.privilege.ts +4 -3
- package/src/core/objects/view/changes/view.types.ts +1 -0
- package/src/core/objects/view/view.diff.test.ts +96 -0
- package/src/core/objects/view/view.diff.ts +30 -15
- package/src/core/plan/sql-format/format-off.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
- package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
- package/src/core/postgres-config.ts +2 -2
- package/src/core/sort/custom-constraints.ts +75 -1
- package/src/core/sort/logical-sort.ts +3 -27
- package/src/typedoc.ts +253 -0
- package/dist/core/integrations/filter/extractors.d.ts +0 -12
- package/dist/core/integrations/filter/extractors.js +0 -178
- package/src/core/integrations/filter/extractors.test.ts +0 -244
- package/src/core/integrations/filter/extractors.ts +0 -187
|
@@ -1,26 +1,45 @@
|
|
|
1
1
|
import { describe, expect, test } from "bun:test";
|
|
2
2
|
import type { Change } from "../../change.types.ts";
|
|
3
3
|
import { compileSerializeDSL } from "./dsl.ts";
|
|
4
|
+
import type { SerializeOptions } from "./serialize.types.ts";
|
|
4
5
|
|
|
5
6
|
function makeChange(
|
|
6
7
|
type: string,
|
|
7
8
|
operation: string,
|
|
8
|
-
serializeFn: (opts?:
|
|
9
|
+
serializeFn: (opts?: SerializeOptions) => string,
|
|
9
10
|
): Change {
|
|
10
11
|
return {
|
|
11
12
|
objectType: type,
|
|
12
13
|
operation,
|
|
13
14
|
scope: "object",
|
|
14
15
|
schema: { name: "test" },
|
|
16
|
+
extension: { schema: "pgmq" },
|
|
15
17
|
serialize: serializeFn,
|
|
16
18
|
} as unknown as Change;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
describe("compileSerializeDSL", () => {
|
|
22
|
+
test("matching extension rule can skip schema serialization", () => {
|
|
23
|
+
const serializer = compileSerializeDSL([
|
|
24
|
+
{
|
|
25
|
+
when: { objectType: "extension", operation: "create" },
|
|
26
|
+
options: { skipSchema: true },
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
const change = makeChange("extension", "create", (opts) =>
|
|
31
|
+
opts?.skipSchema
|
|
32
|
+
? "CREATE EXTENSION pgmq"
|
|
33
|
+
: "CREATE EXTENSION pgmq WITH SCHEMA pgmq",
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
expect(serializer(change)).toBe("CREATE EXTENSION pgmq");
|
|
37
|
+
});
|
|
38
|
+
|
|
20
39
|
test("matching rule applies its options", () => {
|
|
21
40
|
const serializer = compileSerializeDSL([
|
|
22
41
|
{
|
|
23
|
-
when: {
|
|
42
|
+
when: { objectType: "schema", operation: "create" },
|
|
24
43
|
options: { skipAuthorization: true },
|
|
25
44
|
},
|
|
26
45
|
]);
|
|
@@ -37,7 +56,7 @@ describe("compileSerializeDSL", () => {
|
|
|
37
56
|
test("no matching rule uses default serialization", () => {
|
|
38
57
|
const serializer = compileSerializeDSL([
|
|
39
58
|
{
|
|
40
|
-
when: {
|
|
59
|
+
when: { objectType: "table" },
|
|
41
60
|
options: { skipAuthorization: true },
|
|
42
61
|
},
|
|
43
62
|
]);
|
|
@@ -54,11 +73,11 @@ describe("compileSerializeDSL", () => {
|
|
|
54
73
|
test("first matching rule wins", () => {
|
|
55
74
|
const serializer = compileSerializeDSL([
|
|
56
75
|
{
|
|
57
|
-
when: {
|
|
76
|
+
when: { objectType: "schema" },
|
|
58
77
|
options: { skipAuthorization: true },
|
|
59
78
|
},
|
|
60
79
|
{
|
|
61
|
-
when: {
|
|
80
|
+
when: { objectType: "schema" },
|
|
62
81
|
options: { skipAuthorization: false },
|
|
63
82
|
},
|
|
64
83
|
]);
|
|
@@ -73,11 +92,11 @@ describe("compileSerializeDSL", () => {
|
|
|
73
92
|
test("skips non-matching first rule and applies second", () => {
|
|
74
93
|
const serializer = compileSerializeDSL([
|
|
75
94
|
{
|
|
76
|
-
when: {
|
|
95
|
+
when: { objectType: "table" },
|
|
77
96
|
options: { skipAuthorization: true },
|
|
78
97
|
},
|
|
79
98
|
{
|
|
80
|
-
when: {
|
|
99
|
+
when: { objectType: "schema" },
|
|
81
100
|
options: { skipAuthorization: false },
|
|
82
101
|
},
|
|
83
102
|
]);
|
|
@@ -6,16 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import type { Change } from "../../change.types.ts";
|
|
8
8
|
import { evaluatePattern, type FilterPattern } from "../filter/dsl.ts";
|
|
9
|
-
import type { ChangeSerializer } from "./serialize.types.ts";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Serialization options that can be passed to change.serialize().
|
|
13
|
-
*/
|
|
14
|
-
type SerializeOptions = {
|
|
15
|
-
skipAuthorization?: boolean;
|
|
16
|
-
// Can be extended with more options in the future
|
|
17
|
-
[key: string]: unknown;
|
|
18
|
-
};
|
|
9
|
+
import type { ChangeSerializer, SerializeOptions } from "./serialize.types.ts";
|
|
19
10
|
|
|
20
11
|
/**
|
|
21
12
|
* A serialization rule that applies options when a pattern matches.
|
|
@@ -33,8 +24,11 @@ type SerializeRule = {
|
|
|
33
24
|
};
|
|
34
25
|
|
|
35
26
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
27
|
+
* Array of serialization rules evaluated in order. The first matching rule's
|
|
28
|
+
* options are passed to `change.serialize()`. If no rule matches, default
|
|
29
|
+
* serialization is used.
|
|
30
|
+
*
|
|
31
|
+
* @category Integration
|
|
38
32
|
*/
|
|
39
33
|
export type SerializeDSL = SerializeRule[];
|
|
40
34
|
|
|
@@ -52,9 +46,9 @@ export type SerializeDSL = SerializeRule[];
|
|
|
52
46
|
* const serializer = compileSerializeDSL([
|
|
53
47
|
* {
|
|
54
48
|
* when: {
|
|
55
|
-
*
|
|
49
|
+
* objectType: "schema",
|
|
56
50
|
* operation: "create",
|
|
57
|
-
* owner: ["service_role"]
|
|
51
|
+
* "schema/owner": ["service_role"]
|
|
58
52
|
* },
|
|
59
53
|
* options: { skipAuthorization: true }
|
|
60
54
|
* }
|
|
@@ -1,3 +1,40 @@
|
|
|
1
1
|
import type { Change } from "../../change.types.ts";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Shared serialization options passed to `change.serialize(options)`.
|
|
5
|
+
*
|
|
6
|
+
* This is the global source of truth for serialize-option flags used by the
|
|
7
|
+
* integration serialization DSL and concrete change serializers.
|
|
8
|
+
*
|
|
9
|
+
* @category Integration
|
|
10
|
+
*/
|
|
11
|
+
export type SerializeOptions = {
|
|
12
|
+
/** Skip `AUTHORIZATION` when serializing schema creation. */
|
|
13
|
+
skipAuthorization?: boolean;
|
|
14
|
+
/** Skip `WITH SCHEMA ...` when serializing extension creation. */
|
|
15
|
+
skipSchema?: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Schema-specific view of {@link SerializeOptions}.
|
|
20
|
+
*
|
|
21
|
+
* @category Integration
|
|
22
|
+
*/
|
|
23
|
+
export type SchemaSerializeOptions = Pick<
|
|
24
|
+
SerializeOptions,
|
|
25
|
+
"skipAuthorization"
|
|
26
|
+
>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Extension-specific view of {@link SerializeOptions}.
|
|
30
|
+
*
|
|
31
|
+
* @category Integration
|
|
32
|
+
*/
|
|
33
|
+
export type ExtensionSerializeOptions = Pick<SerializeOptions, "skipSchema">;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Compiled serializer function used during plan/declarative export rendering.
|
|
37
|
+
*
|
|
38
|
+
* @category Integration
|
|
39
|
+
*/
|
|
3
40
|
export type ChangeSerializer = (change: Change) => string | undefined;
|
|
@@ -70,38 +70,59 @@ export const supabase: IntegrationDSL = {
|
|
|
70
70
|
// TODO: emptyCatalog: undefined -- populate by running catalog-export on a clean Supabase container
|
|
71
71
|
filter: {
|
|
72
72
|
or: [
|
|
73
|
+
// Include user schema CREATE operations (only schemas not in system list)
|
|
73
74
|
{
|
|
74
75
|
and: [
|
|
75
76
|
{
|
|
76
|
-
|
|
77
|
+
objectType: "schema",
|
|
77
78
|
operation: "create",
|
|
78
79
|
scope: "object",
|
|
79
80
|
},
|
|
80
81
|
{
|
|
81
82
|
not: {
|
|
82
|
-
schema
|
|
83
|
+
// Schema objects have name, not schema — use schema/name
|
|
84
|
+
"schema/name": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
83
85
|
},
|
|
84
86
|
},
|
|
85
87
|
],
|
|
86
88
|
},
|
|
89
|
+
// Include extension CREATEs
|
|
87
90
|
{
|
|
88
|
-
|
|
91
|
+
objectType: "extension",
|
|
89
92
|
operation: "create",
|
|
90
93
|
scope: "object",
|
|
91
94
|
},
|
|
95
|
+
// Include extension DROPs used to disable some extensions (eg: pg-net)
|
|
96
|
+
{
|
|
97
|
+
objectType: "extension",
|
|
98
|
+
operation: "drop",
|
|
99
|
+
scope: "object",
|
|
100
|
+
},
|
|
101
|
+
// Exclude system objects
|
|
92
102
|
{
|
|
93
103
|
not: {
|
|
94
104
|
or: [
|
|
105
|
+
// Objects in system schemas (*/schema matches table/schema, view/schema, etc.)
|
|
106
|
+
{
|
|
107
|
+
"*/schema": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
108
|
+
},
|
|
109
|
+
// Schema objects whose own name is a system schema
|
|
110
|
+
{
|
|
111
|
+
"schema/name": [...SUPABASE_SYSTEM_SCHEMAS],
|
|
112
|
+
},
|
|
113
|
+
// Objects owned by system roles (*/owner matches table/owner, schema/owner, etc.)
|
|
95
114
|
{
|
|
96
|
-
|
|
115
|
+
"*/owner": [...SUPABASE_SYSTEM_ROLES],
|
|
97
116
|
},
|
|
117
|
+
// Role objects whose own name is a system role
|
|
98
118
|
{
|
|
99
|
-
|
|
119
|
+
"role/name": [...SUPABASE_SYSTEM_ROLES],
|
|
100
120
|
},
|
|
121
|
+
// Membership changes for system roles
|
|
101
122
|
{
|
|
102
123
|
and: [
|
|
103
124
|
{
|
|
104
|
-
|
|
125
|
+
objectType: "role",
|
|
105
126
|
scope: "membership",
|
|
106
127
|
},
|
|
107
128
|
{
|
|
@@ -117,14 +138,27 @@ export const supabase: IntegrationDSL = {
|
|
|
117
138
|
serialize: [
|
|
118
139
|
{
|
|
119
140
|
when: {
|
|
120
|
-
|
|
141
|
+
objectType: "schema",
|
|
121
142
|
operation: "create",
|
|
122
143
|
scope: "object",
|
|
123
|
-
owner: [...SUPABASE_SYSTEM_ROLES],
|
|
144
|
+
"schema/owner": [...SUPABASE_SYSTEM_ROLES],
|
|
124
145
|
},
|
|
125
146
|
options: {
|
|
126
147
|
skipAuthorization: true,
|
|
127
148
|
},
|
|
128
149
|
},
|
|
150
|
+
// pgmq extensions creates it's own schema on install doing a `CREATE EXTENSION pgmq WITH SCHEMA pgmq;`
|
|
151
|
+
// will cause an error because the schema will create extension and extension refer to unexisting schema
|
|
152
|
+
{
|
|
153
|
+
when: {
|
|
154
|
+
objectType: "extension",
|
|
155
|
+
operation: "create",
|
|
156
|
+
scope: "object",
|
|
157
|
+
"extension/schema": ["pgmq"],
|
|
158
|
+
},
|
|
159
|
+
options: {
|
|
160
|
+
skipSchema: true,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
129
163
|
],
|
|
130
164
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { AlterAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
|
|
@@ -23,7 +24,7 @@ export class AlterAggregateChangeOwner extends AlterAggregateChange {
|
|
|
23
24
|
return [this.aggregate.stableId];
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
serialize(): string {
|
|
27
|
+
serialize(_options?: SerializeOptions): string {
|
|
27
28
|
const signature = this.aggregate.identityArguments;
|
|
28
29
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
29
30
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
@@ -27,7 +28,7 @@ export class CreateCommentOnAggregate extends CreateAggregateChange {
|
|
|
27
28
|
return [this.aggregate.stableId];
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
serialize(): string {
|
|
31
|
+
serialize(_options?: SerializeOptions): string {
|
|
31
32
|
const signature = this.aggregate.identityArguments;
|
|
32
33
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
33
34
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -53,7 +54,7 @@ export class DropCommentOnAggregate extends DropAggregateChange {
|
|
|
53
54
|
return [stableId.comment(this.aggregate.stableId), this.aggregate.stableId];
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
serialize(): string {
|
|
57
|
+
serialize(_options?: SerializeOptions): string {
|
|
57
58
|
const signature = this.aggregate.identityArguments;
|
|
58
59
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
59
60
|
const withArgs = signature.length > 0 ? `(${signature})` : "()";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import {
|
|
3
4
|
parseProcedureReference,
|
|
@@ -166,7 +167,7 @@ export class CreateAggregate extends CreateAggregateChange {
|
|
|
166
167
|
return Array.from(dependencies);
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
serialize(): string {
|
|
170
|
+
serialize(_options?: SerializeOptions): string {
|
|
170
171
|
const signature = this.aggregate.identityArguments;
|
|
171
172
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
172
173
|
const head = [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Aggregate } from "../aggregate.model.ts";
|
|
2
3
|
import { DropAggregateChange } from "./aggregate.base.ts";
|
|
3
4
|
|
|
@@ -23,7 +24,7 @@ export class DropAggregate extends DropAggregateChange {
|
|
|
23
24
|
return [this.aggregate.stableId];
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
serialize(): string {
|
|
27
|
+
serialize(_options?: SerializeOptions): string {
|
|
27
28
|
const signature = this.aggregate.identityArguments;
|
|
28
29
|
const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
|
|
29
30
|
const withArgs = signature.length > 0 ? `(${signature})` : "(*)";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import {
|
|
2
3
|
formatObjectPrivilegeList,
|
|
3
4
|
getObjectKindPrefix,
|
|
@@ -39,7 +40,7 @@ export class GrantAggregatePrivileges extends AlterAggregateChange {
|
|
|
39
40
|
return [this.aggregate.stableId, stableId.role(this.grantee)];
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
serialize(): string {
|
|
43
|
+
serialize(_options?: SerializeOptions): string {
|
|
43
44
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
44
45
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
45
46
|
if (hasGrantable && hasBase) {
|
|
@@ -92,7 +93,7 @@ export class RevokeAggregatePrivileges extends AlterAggregateChange {
|
|
|
92
93
|
];
|
|
93
94
|
}
|
|
94
95
|
|
|
95
|
-
serialize(): string {
|
|
96
|
+
serialize(_options?: SerializeOptions): string {
|
|
96
97
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
97
98
|
const list = this.privileges.map((p) => p.privilege);
|
|
98
99
|
const privSql = formatObjectPrivilegeList("FUNCTION", list, this.version);
|
|
@@ -131,7 +132,7 @@ export class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
|
|
|
131
132
|
];
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
serialize(): string {
|
|
135
|
+
serialize(_options?: SerializeOptions): string {
|
|
135
136
|
const kindPrefix = getObjectKindPrefix("FUNCTION");
|
|
136
137
|
const privSql = formatObjectPrivilegeList(
|
|
137
138
|
"FUNCTION",
|
|
@@ -4,6 +4,7 @@ import type { CreateAggregate } from "./aggregate.create.ts";
|
|
|
4
4
|
import type { DropAggregate } from "./aggregate.drop.ts";
|
|
5
5
|
import type { AggregatePrivilege } from "./aggregate.privilege.ts";
|
|
6
6
|
|
|
7
|
+
/** Union of all aggregate-related change variants (`objectType: "aggregate"`). @category Change Types */
|
|
7
8
|
export type AggregateChange =
|
|
8
9
|
| AlterAggregate
|
|
9
10
|
| CommentAggregate
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../integrations/serialize/serialize.types.ts";
|
|
2
|
+
|
|
1
3
|
type ChangeOperation = "create" | "alter" | "drop";
|
|
2
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base class for all change objects.
|
|
7
|
+
*
|
|
8
|
+
* Every concrete change (e.g. `CreateTable`, `AlterView`) extends this class and
|
|
9
|
+
* provides an `operation`, `objectType`, and `scope`. The filter DSL flattens
|
|
10
|
+
* these properties — along with the model sub-object — into path/value pairs
|
|
11
|
+
* for pattern matching.
|
|
12
|
+
*
|
|
13
|
+
* @category Base
|
|
14
|
+
*/
|
|
3
15
|
export abstract class BaseChange {
|
|
4
16
|
/**
|
|
5
17
|
* The operation of the change.
|
|
@@ -51,7 +63,7 @@ export abstract class BaseChange {
|
|
|
51
63
|
/**
|
|
52
64
|
* Serialize the change into a single SQL statement.
|
|
53
65
|
*/
|
|
54
|
-
abstract serialize(options?:
|
|
66
|
+
abstract serialize(options?: SerializeOptions): string;
|
|
55
67
|
}
|
|
56
68
|
|
|
57
69
|
/**
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import { BasePgModel } from "./base.model.ts";
|
|
3
|
+
|
|
4
|
+
class NormalizedTestModel extends BasePgModel {
|
|
5
|
+
private readonly id: string;
|
|
6
|
+
private readonly values: string[];
|
|
7
|
+
|
|
8
|
+
constructor(id: string, values: string[]) {
|
|
9
|
+
super();
|
|
10
|
+
this.id = id;
|
|
11
|
+
this.values = values;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get stableId() {
|
|
15
|
+
return this.id;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get identityFields() {
|
|
19
|
+
return { id: this.id };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get dataFields() {
|
|
23
|
+
return { values: this.values };
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override stableSnapshot() {
|
|
27
|
+
return {
|
|
28
|
+
identity: this.identityFields,
|
|
29
|
+
data: {
|
|
30
|
+
values: [...this.values].sort(),
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
describe("BasePgModel.equals", () => {
|
|
37
|
+
test("uses stable snapshots for normalized equality", () => {
|
|
38
|
+
const main = new NormalizedTestModel("same", ["b", "a"]);
|
|
39
|
+
const branch = new NormalizedTestModel("same", ["a", "b"]);
|
|
40
|
+
|
|
41
|
+
expect(main.equals(branch)).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -60,12 +60,15 @@ export abstract class BasePgModel {
|
|
|
60
60
|
abstract get dataFields(): Record<string, unknown>;
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
|
-
* Compare this object with another BasePgModel for equality based on stableId and
|
|
63
|
+
* Compare this object with another BasePgModel for equality based on the stableId and
|
|
64
|
+
* the data portion of the stable snapshot. By default, the snapshot's `data` comes
|
|
65
|
+
* from {@link dataFields}, but subclasses may override {@link stableSnapshot} to
|
|
66
|
+
* normalize or otherwise transform the data used for equality.
|
|
64
67
|
*/
|
|
65
68
|
equals(other: BasePgModel): boolean {
|
|
66
69
|
return (
|
|
67
70
|
this.stableId === other.stableId &&
|
|
68
|
-
deepEqual(this.
|
|
71
|
+
deepEqual(this.stableSnapshot().data, other.stableSnapshot().data)
|
|
69
72
|
);
|
|
70
73
|
}
|
|
71
74
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { AlterCollationChange } from "./collation.base.ts";
|
|
3
4
|
|
|
@@ -36,7 +37,7 @@ export class AlterCollationChangeOwner extends AlterCollationChange {
|
|
|
36
37
|
return [this.collation.stableId];
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
serialize(): string {
|
|
40
|
+
serialize(_options?: SerializeOptions): string {
|
|
40
41
|
return [
|
|
41
42
|
"ALTER COLLATION",
|
|
42
43
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -62,7 +63,7 @@ export class AlterCollationRefreshVersion extends AlterCollationChange {
|
|
|
62
63
|
return [this.collation.stableId];
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
serialize(): string {
|
|
66
|
+
serialize(_options?: SerializeOptions): string {
|
|
66
67
|
return [
|
|
67
68
|
"ALTER COLLATION",
|
|
68
69
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Collation } from "../collation.model.ts";
|
|
@@ -30,7 +31,7 @@ export class CreateCommentOnCollation extends CreateCollationChange {
|
|
|
30
31
|
return [this.collation.stableId];
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
serialize(): string {
|
|
34
|
+
serialize(_options?: SerializeOptions): string {
|
|
34
35
|
return [
|
|
35
36
|
"COMMENT ON COLLATION",
|
|
36
37
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -58,7 +59,7 @@ export class DropCommentOnCollation extends DropCollationChange {
|
|
|
58
59
|
return [stableId.comment(this.collation.stableId)];
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
serialize(): string {
|
|
62
|
+
serialize(_options?: SerializeOptions): string {
|
|
62
63
|
return [
|
|
63
64
|
"COMMENT ON COLLATION",
|
|
64
65
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Collation } from "../collation.model.ts";
|
|
@@ -48,7 +49,7 @@ export class CreateCollation extends CreateCollationChange {
|
|
|
48
49
|
return Array.from(dependencies);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
serialize(): string {
|
|
52
|
+
serialize(_options?: SerializeOptions): string {
|
|
52
53
|
const parts: string[] = ["CREATE COLLATION"];
|
|
53
54
|
|
|
54
55
|
// Add schema and name (already quoted in model extraction)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { Collation } from "../collation.model.ts";
|
|
2
3
|
import { DropCollationChange } from "./collation.base.ts";
|
|
3
4
|
|
|
@@ -28,7 +29,7 @@ export class DropCollation extends DropCollationChange {
|
|
|
28
29
|
return [this.collation.stableId];
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
serialize(): string {
|
|
32
|
+
serialize(_options?: SerializeOptions): string {
|
|
32
33
|
return [
|
|
33
34
|
"DROP COLLATION",
|
|
34
35
|
`${this.collation.schema}.${this.collation.name}`,
|
|
@@ -3,6 +3,7 @@ import type { CommentCollation } from "./collation.comment.ts";
|
|
|
3
3
|
import type { CreateCollation } from "./collation.create.ts";
|
|
4
4
|
import type { DropCollation } from "./collation.drop.ts";
|
|
5
5
|
|
|
6
|
+
/** Union of all collation-related change variants (`objectType: "collation"`). @category Change Types */
|
|
6
7
|
export type CollationChange =
|
|
7
8
|
| AlterCollation
|
|
8
9
|
| CommentCollation
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { stableId } from "../../utils.ts";
|
|
2
3
|
import type { Domain, DomainConstraintProps } from "../domain.model.ts";
|
|
3
4
|
import { AlterDomainChange, DropDomainChange } from "./domain.base.ts";
|
|
@@ -63,7 +64,7 @@ export class AlterDomainSetDefault extends AlterDomainChange {
|
|
|
63
64
|
return [this.domain.stableId];
|
|
64
65
|
}
|
|
65
66
|
|
|
66
|
-
serialize(): string {
|
|
67
|
+
serialize(_options?: SerializeOptions): string {
|
|
67
68
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET DEFAULT ${this.defaultValue}`;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -84,7 +85,7 @@ export class AlterDomainDropDefault extends AlterDomainChange {
|
|
|
84
85
|
return [this.domain.stableId];
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
serialize(): string {
|
|
88
|
+
serialize(_options?: SerializeOptions): string {
|
|
88
89
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP DEFAULT`;
|
|
89
90
|
}
|
|
90
91
|
}
|
|
@@ -105,7 +106,7 @@ export class AlterDomainSetNotNull extends AlterDomainChange {
|
|
|
105
106
|
return [this.domain.stableId];
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
serialize(): string {
|
|
109
|
+
serialize(_options?: SerializeOptions): string {
|
|
109
110
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET NOT NULL`;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
@@ -126,7 +127,7 @@ export class AlterDomainDropNotNull extends AlterDomainChange {
|
|
|
126
127
|
return [this.domain.stableId];
|
|
127
128
|
}
|
|
128
129
|
|
|
129
|
-
serialize(): string {
|
|
130
|
+
serialize(_options?: SerializeOptions): string {
|
|
130
131
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP NOT NULL`;
|
|
131
132
|
}
|
|
132
133
|
}
|
|
@@ -149,7 +150,7 @@ export class AlterDomainChangeOwner extends AlterDomainChange {
|
|
|
149
150
|
return [this.domain.stableId, stableId.role(this.owner)];
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
serialize(): string {
|
|
153
|
+
serialize(_options?: SerializeOptions): string {
|
|
153
154
|
return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} OWNER TO ${this.owner}`;
|
|
154
155
|
}
|
|
155
156
|
}
|
|
@@ -182,7 +183,7 @@ export class AlterDomainAddConstraint extends AlterDomainChange {
|
|
|
182
183
|
return [this.domain.stableId];
|
|
183
184
|
}
|
|
184
185
|
|
|
185
|
-
serialize(): string {
|
|
186
|
+
serialize(_options?: SerializeOptions): string {
|
|
186
187
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
187
188
|
const parts: string[] = [
|
|
188
189
|
"ALTER DOMAIN",
|
|
@@ -235,7 +236,7 @@ export class AlterDomainDropConstraint extends DropDomainChange {
|
|
|
235
236
|
];
|
|
236
237
|
}
|
|
237
238
|
|
|
238
|
-
serialize(): string {
|
|
239
|
+
serialize(_options?: SerializeOptions): string {
|
|
239
240
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
240
241
|
return [
|
|
241
242
|
"ALTER DOMAIN",
|
|
@@ -274,7 +275,7 @@ export class AlterDomainValidateConstraint extends AlterDomainChange {
|
|
|
274
275
|
];
|
|
275
276
|
}
|
|
276
277
|
|
|
277
|
-
serialize(): string {
|
|
278
|
+
serialize(_options?: SerializeOptions): string {
|
|
278
279
|
const domainName = `${this.domain.schema}.${this.domain.name}`;
|
|
279
280
|
return [
|
|
280
281
|
"ALTER DOMAIN",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import { quoteLiteral } from "../../base.change.ts";
|
|
2
3
|
import { stableId } from "../../utils.ts";
|
|
3
4
|
import type { Domain } from "../domain.model.ts";
|
|
@@ -25,7 +26,7 @@ export class CreateCommentOnDomain extends CreateDomainChange {
|
|
|
25
26
|
return [this.domain.stableId];
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
serialize(): string {
|
|
29
|
+
serialize(_options?: SerializeOptions): string {
|
|
29
30
|
return [
|
|
30
31
|
"COMMENT ON DOMAIN",
|
|
31
32
|
`${this.domain.schema}.${this.domain.name}`,
|
|
@@ -49,7 +50,7 @@ export class DropCommentOnDomain extends DropDomainChange {
|
|
|
49
50
|
return [stableId.comment(this.domain.stableId), this.domain.stableId];
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
serialize(): string {
|
|
53
|
+
serialize(_options?: SerializeOptions): string {
|
|
53
54
|
return [
|
|
54
55
|
"COMMENT ON DOMAIN",
|
|
55
56
|
`${this.domain.schema}.${this.domain.name}`,
|