@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
|
@@ -33,7 +33,7 @@ export class GrantRangePrivileges extends AlterRangeChange {
|
|
|
33
33
|
get requires() {
|
|
34
34
|
return [this.range.stableId, stableId.role(this.grantee)];
|
|
35
35
|
}
|
|
36
|
-
serialize() {
|
|
36
|
+
serialize(_options) {
|
|
37
37
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
38
38
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
39
39
|
if (hasGrantable && hasBase) {
|
|
@@ -87,7 +87,7 @@ export class RevokeRangePrivileges extends AlterRangeChange {
|
|
|
87
87
|
stableId.role(this.grantee),
|
|
88
88
|
];
|
|
89
89
|
}
|
|
90
|
-
serialize() {
|
|
90
|
+
serialize(_options) {
|
|
91
91
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
92
92
|
const list = this.privileges.map((p) => p.privilege);
|
|
93
93
|
const privSql = formatObjectPrivilegeList("TYPE", list, this.version);
|
|
@@ -122,7 +122,7 @@ export class RevokeGrantOptionRangePrivileges extends AlterRangeChange {
|
|
|
122
122
|
stableId.role(this.grantee),
|
|
123
123
|
];
|
|
124
124
|
}
|
|
125
|
-
serialize() {
|
|
125
|
+
serialize(_options) {
|
|
126
126
|
const kindPrefix = getObjectKindPrefix("TYPE");
|
|
127
127
|
const privSql = formatObjectPrivilegeList("TYPE", this.privilegeNames, this.version);
|
|
128
128
|
const typeName = `${this.range.schema}.${this.range.name}`;
|
|
@@ -3,4 +3,5 @@ import type { CommentRange } from "./range.comment.ts";
|
|
|
3
3
|
import type { CreateRange } from "./range.create.ts";
|
|
4
4
|
import type { DropRange } from "./range.drop.ts";
|
|
5
5
|
import type { RangePrivilege } from "./range.privilege.ts";
|
|
6
|
+
/** Union of all range-related change variants (`objectType: "range"`). @category Change Types */
|
|
6
7
|
export type RangeChange = AlterRange | CommentRange | CreateRange | DropRange | RangePrivilege;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CompositeTypeChange } from "./composite-type/changes/composite-type.types.ts";
|
|
2
2
|
import type { EnumChange } from "./enum/changes/enum.types.ts";
|
|
3
3
|
import type { RangeChange } from "./range/changes/range.types.ts";
|
|
4
|
+
/** Union of all type-related change variants (`objectType: "composite_type" | "enum" | "range"`). @category Change Types */
|
|
4
5
|
export type TypeChange = CompositeTypeChange | EnumChange | RangeChange;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { AlterViewChange } from "./view.base.ts";
|
|
3
4
|
/**
|
|
@@ -30,7 +31,7 @@ export declare class AlterViewChangeOwner extends AlterViewChange {
|
|
|
30
31
|
owner: string;
|
|
31
32
|
});
|
|
32
33
|
get requires(): `view:${string}`[];
|
|
33
|
-
serialize(): string;
|
|
34
|
+
serialize(_options?: SerializeOptions): string;
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
36
37
|
* ALTER VIEW ... SET ( ... )
|
|
@@ -44,7 +45,7 @@ export declare class AlterViewSetOptions extends AlterViewChange {
|
|
|
44
45
|
options: string[];
|
|
45
46
|
});
|
|
46
47
|
get requires(): `view:${string}`[];
|
|
47
|
-
serialize(): string;
|
|
48
|
+
serialize(_options?: SerializeOptions): string;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* ALTER VIEW ... RESET ( ... )
|
|
@@ -58,5 +59,5 @@ export declare class AlterViewResetOptions extends AlterViewChange {
|
|
|
58
59
|
params: string[];
|
|
59
60
|
});
|
|
60
61
|
get requires(): `view:${string}`[];
|
|
61
|
-
serialize(): string;
|
|
62
|
+
serialize(_options?: SerializeOptions): string;
|
|
62
63
|
}
|
|
@@ -14,7 +14,7 @@ export class AlterViewChangeOwner extends AlterViewChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.view.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"ALTER VIEW",
|
|
20
20
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -39,7 +39,7 @@ export class AlterViewSetOptions extends AlterViewChange {
|
|
|
39
39
|
get requires() {
|
|
40
40
|
return [this.view.stableId];
|
|
41
41
|
}
|
|
42
|
-
serialize() {
|
|
42
|
+
serialize(_options) {
|
|
43
43
|
const opts = this.options.join(", ");
|
|
44
44
|
return [
|
|
45
45
|
"ALTER VIEW",
|
|
@@ -64,7 +64,7 @@ export class AlterViewResetOptions extends AlterViewChange {
|
|
|
64
64
|
get requires() {
|
|
65
65
|
return [this.view.stableId];
|
|
66
66
|
}
|
|
67
|
-
serialize() {
|
|
67
|
+
serialize(_options) {
|
|
68
68
|
return [
|
|
69
69
|
"ALTER VIEW",
|
|
70
70
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { CreateViewChange, DropViewChange } from "./view.base.ts";
|
|
3
4
|
export type CommentView = CreateCommentOnView | DropCommentOnView;
|
|
@@ -9,7 +10,7 @@ export declare class CreateCommentOnView extends CreateViewChange {
|
|
|
9
10
|
});
|
|
10
11
|
get creates(): `comment:${string}`[];
|
|
11
12
|
get requires(): `view:${string}`[];
|
|
12
|
-
serialize(): string;
|
|
13
|
+
serialize(_options?: SerializeOptions): string;
|
|
13
14
|
}
|
|
14
15
|
export declare class DropCommentOnView extends DropViewChange {
|
|
15
16
|
readonly view: View;
|
|
@@ -19,5 +20,5 @@ export declare class DropCommentOnView extends DropViewChange {
|
|
|
19
20
|
});
|
|
20
21
|
get drops(): `comment:${string}`[];
|
|
21
22
|
get requires(): (`comment:${string}` | `view:${string}`)[];
|
|
22
|
-
serialize(): string;
|
|
23
|
+
serialize(_options?: SerializeOptions): string;
|
|
23
24
|
}
|
|
@@ -14,7 +14,7 @@ export class CreateCommentOnView extends CreateViewChange {
|
|
|
14
14
|
get requires() {
|
|
15
15
|
return [this.view.stableId];
|
|
16
16
|
}
|
|
17
|
-
serialize() {
|
|
17
|
+
serialize(_options) {
|
|
18
18
|
return [
|
|
19
19
|
"COMMENT ON VIEW",
|
|
20
20
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -36,7 +36,7 @@ export class DropCommentOnView extends DropViewChange {
|
|
|
36
36
|
get requires() {
|
|
37
37
|
return [stableId.comment(this.view.stableId), this.view.stableId];
|
|
38
38
|
}
|
|
39
|
-
serialize() {
|
|
39
|
+
serialize(_options) {
|
|
40
40
|
return [
|
|
41
41
|
"COMMENT ON VIEW",
|
|
42
42
|
`${this.view.schema}.${this.view.name}`,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { CreateViewChange } from "./view.base.ts";
|
|
3
4
|
/**
|
|
@@ -23,5 +24,5 @@ export declare class CreateView extends CreateViewChange {
|
|
|
23
24
|
});
|
|
24
25
|
get creates(): (`column:${string}.${string}.${string}` | `view:${string}`)[];
|
|
25
26
|
get requires(): string[];
|
|
26
|
-
serialize(): string;
|
|
27
|
+
serialize(_options?: SerializeOptions): string;
|
|
27
28
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { DropViewChange } from "./view.base.ts";
|
|
3
4
|
/**
|
|
@@ -13,5 +14,5 @@ export declare class DropView extends DropViewChange {
|
|
|
13
14
|
});
|
|
14
15
|
get drops(): (`column:${string}.${string}.${string}` | `view:${string}`)[];
|
|
15
16
|
get requires(): (`column:${string}.${string}.${string}` | `view:${string}`)[];
|
|
16
|
-
serialize(): string;
|
|
17
|
+
serialize(_options?: SerializeOptions): string;
|
|
17
18
|
}
|
|
@@ -24,7 +24,7 @@ export class DropView extends DropViewChange {
|
|
|
24
24
|
...this.view.columns.map((column) => stableId.column(this.view.schema, this.view.name, column.name)),
|
|
25
25
|
];
|
|
26
26
|
}
|
|
27
|
-
serialize() {
|
|
27
|
+
serialize(_options) {
|
|
28
28
|
return ["DROP VIEW", `${this.view.schema}.${this.view.name}`].join(" ");
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
|
|
1
2
|
import type { View } from "../view.model.ts";
|
|
2
3
|
import { AlterViewChange } from "./view.base.ts";
|
|
3
4
|
export type ViewPrivilege = GrantViewPrivileges | RevokeViewPrivileges | RevokeGrantOptionViewPrivileges;
|
|
@@ -38,7 +39,7 @@ export declare class GrantViewPrivileges extends AlterViewChange {
|
|
|
38
39
|
});
|
|
39
40
|
get creates(): `acl:${string}::grantee:${string}`[];
|
|
40
41
|
get requires(): (`role:${string}` | `view:${string}`)[];
|
|
41
|
-
serialize(): string;
|
|
42
|
+
serialize(_options?: SerializeOptions): string;
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Revoke privileges on a view.
|
|
@@ -79,7 +80,7 @@ export declare class RevokeViewPrivileges extends AlterViewChange {
|
|
|
79
80
|
});
|
|
80
81
|
get drops(): `acl:${string}::grantee:${string}`[];
|
|
81
82
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `view:${string}`)[];
|
|
82
|
-
serialize(): string;
|
|
83
|
+
serialize(_options?: SerializeOptions): string;
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Revoke grant option for privileges on a view.
|
|
@@ -103,5 +104,5 @@ export declare class RevokeGrantOptionViewPrivileges extends AlterViewChange {
|
|
|
103
104
|
version?: number;
|
|
104
105
|
});
|
|
105
106
|
get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `view:${string}`)[];
|
|
106
|
-
serialize(): string;
|
|
107
|
+
serialize(_options?: SerializeOptions): string;
|
|
107
108
|
}
|
|
@@ -37,7 +37,7 @@ export class GrantViewPrivileges extends AlterViewChange {
|
|
|
37
37
|
get requires() {
|
|
38
38
|
return [this.view.stableId, stableId.role(this.grantee)];
|
|
39
39
|
}
|
|
40
|
-
serialize() {
|
|
40
|
+
serialize(_options) {
|
|
41
41
|
const hasGrantable = this.privileges.some((p) => p.grantable);
|
|
42
42
|
const hasBase = this.privileges.some((p) => !p.grantable);
|
|
43
43
|
if (hasGrantable && hasBase) {
|
|
@@ -98,7 +98,7 @@ export class RevokeViewPrivileges extends AlterViewChange {
|
|
|
98
98
|
stableId.role(this.grantee),
|
|
99
99
|
];
|
|
100
100
|
}
|
|
101
|
-
serialize() {
|
|
101
|
+
serialize(_options) {
|
|
102
102
|
const kindPrefix = getObjectKindPrefix("VIEW");
|
|
103
103
|
const list = this.privileges.map((p) => p.privilege);
|
|
104
104
|
const privSql = formatObjectPrivilegeList("VIEW", list, this.version);
|
|
@@ -138,7 +138,7 @@ export class RevokeGrantOptionViewPrivileges extends AlterViewChange {
|
|
|
138
138
|
stableId.role(this.grantee),
|
|
139
139
|
];
|
|
140
140
|
}
|
|
141
|
-
serialize() {
|
|
141
|
+
serialize(_options) {
|
|
142
142
|
const kindPrefix = getObjectKindPrefix("VIEW");
|
|
143
143
|
const privSql = formatObjectPrivilegeList("VIEW", this.privilegeNames, this.version);
|
|
144
144
|
const viewName = `${this.view.schema}.${this.view.name}`;
|
|
@@ -3,4 +3,5 @@ import type { CommentView } from "./view.comment.ts";
|
|
|
3
3
|
import type { CreateView } from "./view.create.ts";
|
|
4
4
|
import type { DropView } from "./view.drop.ts";
|
|
5
5
|
import type { ViewPrivilege } from "./view.privilege.ts";
|
|
6
|
+
/** Union of all view-related change variants (`objectType: "view"`). @category Change Types */
|
|
6
7
|
export type ViewChange = AlterView | CommentView | CreateView | DropView | ViewPrivilege;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { diffObjects } from "../base.diff.js";
|
|
2
|
+
import { normalizeColumns } from "../base.model.js";
|
|
2
3
|
import { diffPrivileges, emitColumnPrivilegeChanges, } from "../base.privilege-diff.js";
|
|
3
4
|
import { deepEqual, hasNonAlterableChanges } from "../utils.js";
|
|
4
5
|
import { AlterViewChangeOwner, AlterViewResetOptions, AlterViewSetOptions, } from "./changes/view.alter.js";
|
|
@@ -17,35 +18,37 @@ import { GrantViewPrivileges, RevokeGrantOptionViewPrivileges, RevokeViewPrivile
|
|
|
17
18
|
export function diffViews(ctx, main, branch) {
|
|
18
19
|
const { created, dropped, altered } = diffObjects(main, branch);
|
|
19
20
|
const changes = [];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
changes.push(new CreateView({ view: v }));
|
|
21
|
+
const appendCreateViewChanges = (view) => {
|
|
22
|
+
changes.push(new CreateView({ view }));
|
|
23
23
|
// OWNER: If the view should be owned by someone other than the current user,
|
|
24
24
|
// emit ALTER VIEW ... OWNER TO after creation
|
|
25
|
-
if (
|
|
26
|
-
changes.push(new AlterViewChangeOwner({ view
|
|
25
|
+
if (view.owner !== ctx.currentUser) {
|
|
26
|
+
changes.push(new AlterViewChangeOwner({ view, owner: view.owner }));
|
|
27
27
|
}
|
|
28
|
-
if (
|
|
29
|
-
changes.push(new CreateCommentOnView({ view
|
|
28
|
+
if (view.comment !== null) {
|
|
29
|
+
changes.push(new CreateCommentOnView({ view }));
|
|
30
30
|
}
|
|
31
31
|
// PRIVILEGES: For created objects, compare against default privileges state
|
|
32
32
|
// The migration script will run ALTER DEFAULT PRIVILEGES before CREATE (via constraint spec),
|
|
33
33
|
// so objects are created with the default privileges state in effect.
|
|
34
34
|
// We compare default privileges against desired privileges to generate REVOKE/GRANT statements
|
|
35
35
|
// needed to reach the final desired state.
|
|
36
|
-
const effectiveDefaults = ctx.defaultPrivilegeState.getEffectiveDefaults(ctx.currentUser, "view",
|
|
37
|
-
const creatorFilteredDefaults =
|
|
36
|
+
const effectiveDefaults = ctx.defaultPrivilegeState.getEffectiveDefaults(ctx.currentUser, "view", view.schema ?? "");
|
|
37
|
+
const creatorFilteredDefaults = view.owner !== ctx.currentUser
|
|
38
38
|
? effectiveDefaults.filter((p) => p.grantee !== ctx.currentUser)
|
|
39
39
|
: effectiveDefaults;
|
|
40
|
-
const desiredPrivileges =
|
|
40
|
+
const desiredPrivileges = view.privileges;
|
|
41
41
|
// Filter out owner privileges - owner always has ALL privileges implicitly
|
|
42
42
|
// and shouldn't be compared. Use the view owner as the reference.
|
|
43
|
-
const privilegeResults = diffPrivileges(creatorFilteredDefaults, desiredPrivileges,
|
|
44
|
-
changes.push(...emitColumnPrivilegeChanges(privilegeResults,
|
|
43
|
+
const privilegeResults = diffPrivileges(creatorFilteredDefaults, desiredPrivileges, view.owner);
|
|
44
|
+
changes.push(...emitColumnPrivilegeChanges(privilegeResults, view, view, "view", {
|
|
45
45
|
Grant: GrantViewPrivileges,
|
|
46
46
|
Revoke: RevokeViewPrivileges,
|
|
47
47
|
RevokeGrantOption: RevokeGrantOptionViewPrivileges,
|
|
48
48
|
}, effectiveDefaults, ctx.version));
|
|
49
|
+
};
|
|
50
|
+
for (const viewId of created) {
|
|
51
|
+
appendCreateViewChanges(branch[viewId]);
|
|
49
52
|
}
|
|
50
53
|
for (const viewId of dropped) {
|
|
51
54
|
changes.push(new DropView({ view: main[viewId] }));
|
|
@@ -69,7 +72,15 @@ export function diffViews(ctx, main, branch) {
|
|
|
69
72
|
"partition_bound",
|
|
70
73
|
];
|
|
71
74
|
const nonAlterablePropsChanged = hasNonAlterableChanges(mainView, branchView, NON_ALTERABLE_FIELDS, { options: deepEqual });
|
|
72
|
-
|
|
75
|
+
// Normalize columns (strip position, sort by name) to match stableSnapshot().
|
|
76
|
+
// Position-only differences are safe to ignore here because column order in a
|
|
77
|
+
// view is determined by its definition, which is already checked above via
|
|
78
|
+
// NON_ALTERABLE_FIELDS - a position change always implies a definition change.
|
|
79
|
+
if (!deepEqual(normalizeColumns(mainView.columns), normalizeColumns(branchView.columns))) {
|
|
80
|
+
changes.push(new DropView({ view: mainView }));
|
|
81
|
+
appendCreateViewChanges(branchView);
|
|
82
|
+
}
|
|
83
|
+
else if (nonAlterablePropsChanged) {
|
|
73
84
|
// Replace the entire view using CREATE OR REPLACE to avoid drop when possible
|
|
74
85
|
changes.push(new CreateView({ view: branchView, orReplace: true }));
|
|
75
86
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostgreSQL connection configuration with custom type handlers.
|
|
3
3
|
*/
|
|
4
|
-
import type { PoolClient, PoolConfig } from "pg";
|
|
4
|
+
import type { ClientBase, PoolClient, PoolConfig } from "pg";
|
|
5
5
|
import { Pool } from "pg";
|
|
6
6
|
/**
|
|
7
7
|
* Options for creating a Pool with event listeners.
|
|
8
8
|
*/
|
|
9
9
|
interface CreatePoolOptions extends Partial<PoolConfig> {
|
|
10
10
|
/** Called when a new client connects to the pool */
|
|
11
|
-
onConnect?: (client:
|
|
11
|
+
onConnect?: (client: ClientBase) => void | Promise<void>;
|
|
12
12
|
/** Called when an idle client emits an error */
|
|
13
13
|
onError?: (err: Error, client: PoolClient) => void;
|
|
14
14
|
/** Called when a client is acquired from the pool */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { getSchema } from "../
|
|
1
|
+
import { getSchema } from "../change-utils.js";
|
|
2
2
|
import { GrantRoleDefaultPrivileges, RevokeRoleDefaultPrivileges, } from "../objects/role/changes/role.privilege.js";
|
|
3
|
+
import { AlterTableAlterColumnAddIdentity, AlterTableAlterColumnDropDefault, AlterTableAlterColumnDropIdentity, AlterTableAlterColumnSetDefault, } from "../objects/table/changes/table.alter.js";
|
|
3
4
|
/**
|
|
4
5
|
* Maps object type names to PostgreSQL default privilege objtype codes.
|
|
5
6
|
* This mirrors the mapping in base.default-privileges.ts.
|
|
@@ -116,11 +117,74 @@ function generateDefaultPrivilegeConstraints(changes) {
|
|
|
116
117
|
}
|
|
117
118
|
return constraints;
|
|
118
119
|
}
|
|
120
|
+
function generateIdentityTransitionConstraints(changes) {
|
|
121
|
+
const constraints = [];
|
|
122
|
+
const dropDefaultByColumn = new Map();
|
|
123
|
+
const dropIdentityByColumn = new Map();
|
|
124
|
+
const addIdentityByColumn = new Map();
|
|
125
|
+
const setDefaultByColumn = new Map();
|
|
126
|
+
for (let i = 0; i < changes.length; i++) {
|
|
127
|
+
const change = changes[i];
|
|
128
|
+
const columnKey = "table" in change && "column" in change
|
|
129
|
+
? `${change.table.schema}.${change.table.name}.${change.column.name}`
|
|
130
|
+
: null;
|
|
131
|
+
if (!columnKey)
|
|
132
|
+
continue;
|
|
133
|
+
if (change instanceof AlterTableAlterColumnDropDefault) {
|
|
134
|
+
const entries = dropDefaultByColumn.get(columnKey) ?? [];
|
|
135
|
+
entries.push(i);
|
|
136
|
+
dropDefaultByColumn.set(columnKey, entries);
|
|
137
|
+
}
|
|
138
|
+
else if (change instanceof AlterTableAlterColumnAddIdentity) {
|
|
139
|
+
const entries = addIdentityByColumn.get(columnKey) ?? [];
|
|
140
|
+
entries.push(i);
|
|
141
|
+
addIdentityByColumn.set(columnKey, entries);
|
|
142
|
+
}
|
|
143
|
+
else if (change instanceof AlterTableAlterColumnDropIdentity) {
|
|
144
|
+
const entries = dropIdentityByColumn.get(columnKey) ?? [];
|
|
145
|
+
entries.push(i);
|
|
146
|
+
dropIdentityByColumn.set(columnKey, entries);
|
|
147
|
+
}
|
|
148
|
+
else if (change instanceof AlterTableAlterColumnSetDefault) {
|
|
149
|
+
const entries = setDefaultByColumn.get(columnKey) ?? [];
|
|
150
|
+
entries.push(i);
|
|
151
|
+
setDefaultByColumn.set(columnKey, entries);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// These rules only order same-column ALTERs inside the create/alter phase.
|
|
155
|
+
// Sequence drops are handled separately in the earlier drop phase.
|
|
156
|
+
for (const [columnKey, dropDefaultIndexes] of dropDefaultByColumn) {
|
|
157
|
+
const addIdentityIndexes = addIdentityByColumn.get(columnKey) ?? [];
|
|
158
|
+
for (const sourceIndex of dropDefaultIndexes) {
|
|
159
|
+
for (const targetIndex of addIdentityIndexes) {
|
|
160
|
+
constraints.push({
|
|
161
|
+
sourceChangeIndex: sourceIndex,
|
|
162
|
+
targetChangeIndex: targetIndex,
|
|
163
|
+
source: "custom",
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
for (const [columnKey, dropIdentityIndexes] of dropIdentityByColumn) {
|
|
169
|
+
const setDefaultIndexes = setDefaultByColumn.get(columnKey) ?? [];
|
|
170
|
+
for (const sourceIndex of dropIdentityIndexes) {
|
|
171
|
+
for (const targetIndex of setDefaultIndexes) {
|
|
172
|
+
constraints.push({
|
|
173
|
+
sourceChangeIndex: sourceIndex,
|
|
174
|
+
targetChangeIndex: targetIndex,
|
|
175
|
+
source: "custom",
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return constraints;
|
|
181
|
+
}
|
|
119
182
|
/**
|
|
120
183
|
* All custom constraint generators.
|
|
121
184
|
*/
|
|
122
185
|
const customConstraintGenerators = [
|
|
123
186
|
generateDefaultPrivilegeConstraints,
|
|
187
|
+
generateIdentityTransitionConstraints,
|
|
124
188
|
];
|
|
125
189
|
/**
|
|
126
190
|
* Generate Constraints from custom constraint generators.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* It groups related changes together while preserving the ability for the dependency
|
|
9
9
|
* resolver to reorder within groups when necessary.
|
|
10
10
|
*/
|
|
11
|
-
import { getSchema } from "../
|
|
11
|
+
import { getSchema } from "../change-utils.js";
|
|
12
12
|
import { getExecutionPhase, isMetadataStableId } from "./utils.js";
|
|
13
13
|
/**
|
|
14
14
|
* Object type ordering for logical grouping.
|
|
@@ -287,27 +287,6 @@ function getParentStableId(change) {
|
|
|
287
287
|
// Fallback: return first requires if available
|
|
288
288
|
return requires.length > 0 ? requires[0] : null;
|
|
289
289
|
}
|
|
290
|
-
/**
|
|
291
|
-
* Extract schema name from a change.
|
|
292
|
-
* Returns the schema name if present, or null for non-schema objects.
|
|
293
|
-
*
|
|
294
|
-
* Uses the getSchema helper which directly accesses schema properties from change objects.
|
|
295
|
-
* For default_privilege changes, accesses the inSchema property directly.
|
|
296
|
-
* For event_trigger changes, groups by their function's schema.
|
|
297
|
-
*/
|
|
298
|
-
function extractSchemaFromChange(change) {
|
|
299
|
-
// Handle default_privilege changes specially (they have inSchema property)
|
|
300
|
-
if (change.scope === "default_privilege") {
|
|
301
|
-
// TypeScript doesn't know about inSchema, but we know it exists for default_privilege changes
|
|
302
|
-
return change.inSchema ?? null;
|
|
303
|
-
}
|
|
304
|
-
// Handle event_trigger changes specially - group by their function's schema
|
|
305
|
-
if (change.objectType === "event_trigger") {
|
|
306
|
-
return change.eventTrigger.function_schema;
|
|
307
|
-
}
|
|
308
|
-
// Use the getSchema helper for all other changes
|
|
309
|
-
return getSchema(change);
|
|
310
|
-
}
|
|
311
290
|
/**
|
|
312
291
|
* Get the effective object type for sorting purposes.
|
|
313
292
|
* For sub-entities, returns the parent's object type (table/view/materialized_view).
|
|
@@ -399,8 +378,8 @@ function sortPhase(changes, phase) {
|
|
|
399
378
|
const changeA = a.change;
|
|
400
379
|
const changeB = b.change;
|
|
401
380
|
// 1. Compare schemas (group objects by schema)
|
|
402
|
-
const schemaA =
|
|
403
|
-
const schemaB =
|
|
381
|
+
const schemaA = getSchema(changeA);
|
|
382
|
+
const schemaB = getSchema(changeB);
|
|
404
383
|
// Non-schema objects (roles, languages, extensions, etc.) sort first
|
|
405
384
|
// Use a special prefix to ensure they come before schema objects
|
|
406
385
|
const schemaKeyA = schemaA === null ? "::" : schemaA;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supabase/pg-delta",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.12",
|
|
4
4
|
"description": "PostgreSQL migrations made easy",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsc --project tsconfig.build.json",
|
|
70
70
|
"check-types": "tsc --noEmit",
|
|
71
|
+
"docs": "typedoc",
|
|
71
72
|
"format-and-lint": "biome check . --error-on-warnings",
|
|
72
73
|
"knip": "knip",
|
|
73
74
|
"pgdelta": "bun src/cli/bin/cli.ts",
|
|
@@ -84,6 +85,7 @@
|
|
|
84
85
|
"chalk": "^5.6.2",
|
|
85
86
|
"debug": "^4.3.7",
|
|
86
87
|
"pg": "^8.17.2",
|
|
88
|
+
"picomatch": "^4.0.3",
|
|
87
89
|
"zod": "^4.2.1"
|
|
88
90
|
},
|
|
89
91
|
"devDependencies": {
|
|
@@ -94,9 +96,11 @@
|
|
|
94
96
|
"@types/debug": "^4.1.12",
|
|
95
97
|
"@types/node": "^24.10.4",
|
|
96
98
|
"@types/pg": "^8.11.10",
|
|
99
|
+
"@types/picomatch": "^4.0.2",
|
|
97
100
|
"dedent": "^1.7.1",
|
|
98
101
|
"knip": "^5.75.2",
|
|
99
102
|
"testcontainers": "^11.10.0",
|
|
103
|
+
"typedoc": "^0.28.17",
|
|
100
104
|
"typescript": "^5.9.3"
|
|
101
105
|
}
|
|
102
106
|
}
|
|
@@ -6,13 +6,14 @@ import { mkdir, rm, writeFile } from "node:fs/promises";
|
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { buildCommand, type CommandContext } from "@stricli/core";
|
|
8
8
|
import chalk from "chalk";
|
|
9
|
-
import
|
|
9
|
+
import { deserializeCatalog } from "../../core/catalog.snapshot.ts";
|
|
10
10
|
import { exportDeclarativeSchema } from "../../core/export/index.ts";
|
|
11
11
|
import type { Grouping, GroupingPattern } from "../../core/export/types.ts";
|
|
12
12
|
import type { FilterDSL } from "../../core/integrations/filter/dsl.ts";
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
import {
|
|
14
|
+
compileSerializeDSL,
|
|
15
|
+
type SerializeDSL,
|
|
16
|
+
} from "../../core/integrations/serialize/dsl.ts";
|
|
16
17
|
import { createPlan } from "../../core/plan/index.ts";
|
|
17
18
|
import type { SqlFormatOptions } from "../../core/plan/sql-format.ts";
|
|
18
19
|
import {
|
|
@@ -21,7 +22,7 @@ import {
|
|
|
21
22
|
computeFileDiff,
|
|
22
23
|
formatExportSummary,
|
|
23
24
|
} from "../utils/export-display.ts";
|
|
24
|
-
import {
|
|
25
|
+
import { resolveIntegrationOptions } from "../utils/integrations.ts";
|
|
25
26
|
import { isPostgresUrl, loadCatalogFromFile } from "../utils/resolve-input.ts";
|
|
26
27
|
|
|
27
28
|
function parseJsonFlag<T>(label: string, value: string): T {
|
|
@@ -185,29 +186,22 @@ After export, a tip is printed with the command to apply the schema to an empty
|
|
|
185
186
|
verbose?: boolean;
|
|
186
187
|
},
|
|
187
188
|
) {
|
|
188
|
-
const {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
flags.serialize
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
const integrationDSL = await loadIntegrationDSL(flags.integration);
|
|
198
|
-
filterOption = filterOption ?? integrationDSL.filter;
|
|
199
|
-
serializeOption = serializeOption ?? integrationDSL.serialize;
|
|
200
|
-
integrationEmptyCatalog = integrationDSL.emptyCatalog;
|
|
201
|
-
}
|
|
189
|
+
const {
|
|
190
|
+
filter,
|
|
191
|
+
serialize,
|
|
192
|
+
emptyCatalog: integrationEmptyCatalog,
|
|
193
|
+
} = await resolveIntegrationOptions({
|
|
194
|
+
filter: flags.filter,
|
|
195
|
+
serialize: flags.serialize,
|
|
196
|
+
integration: flags.integration,
|
|
197
|
+
});
|
|
202
198
|
|
|
203
199
|
const resolvedSource = flags.source
|
|
204
200
|
? isPostgresUrl(flags.source)
|
|
205
201
|
? flags.source
|
|
206
202
|
: await loadCatalogFromFile(flags.source)
|
|
207
203
|
: integrationEmptyCatalog
|
|
208
|
-
? (
|
|
209
|
-
integrationEmptyCatalog,
|
|
210
|
-
)
|
|
204
|
+
? deserializeCatalog(integrationEmptyCatalog)
|
|
211
205
|
: null;
|
|
212
206
|
|
|
213
207
|
const resolvedTarget = isPostgresUrl(flags.target)
|
|
@@ -221,8 +215,8 @@ After export, a tip is printed with the command to apply the schema to an empty
|
|
|
221
215
|
// changes that depend on filtered objects (e.g. RLS policies that
|
|
222
216
|
// reference auth.uid() when the auth schema is filtered out).
|
|
223
217
|
const planResult = await createPlan(resolvedSource, resolvedTarget, {
|
|
224
|
-
filter
|
|
225
|
-
serialize
|
|
218
|
+
filter,
|
|
219
|
+
serialize,
|
|
226
220
|
skipDefaultPrivilegeSubtraction: true,
|
|
227
221
|
});
|
|
228
222
|
|
|
@@ -254,9 +248,7 @@ After export, a tip is printed with the command to apply the schema to an empty
|
|
|
254
248
|
}
|
|
255
249
|
|
|
256
250
|
const serializeFn =
|
|
257
|
-
|
|
258
|
-
? compileSerializeDSL(serializeOption)
|
|
259
|
-
: undefined;
|
|
251
|
+
serialize !== undefined ? compileSerializeDSL(serialize) : undefined;
|
|
260
252
|
|
|
261
253
|
const output = exportDeclarativeSchema(planResult, {
|
|
262
254
|
integration:
|