fix(fulfillment): don't cascade shipping option delete to shipping option type (#13280)
**What** - don't cascade delete shipping option type when shipping option is deleted since types can be shared between options - prevent shipping option type deletion if there are options associated with it
This commit is contained in:
1 parent
6264a6262b
commit
57077406f9
6 files changed
+194
-71
No files matched your search
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/fulfillment": patch
|
||||||
|
"@medusajs/core-flows": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(core-flows, fulfillment): don't cascade delete shipping option type when shipping option is deleted
|
||||||
+46
-5
@@ -1,4 +1,8 @@
|
|||||||
import { Modules, ShippingOptionTypeWorkflowEvents } from "@medusajs/framework/utils"
|
import {
|
||||||
|
MedusaError,
|
||||||
|
Modules,
|
||||||
|
ShippingOptionTypeWorkflowEvents,
|
||||||
|
} from "@medusajs/framework/utils"
|
||||||
import {
|
import {
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
@@ -7,9 +11,25 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
|
import { createStep } from "@medusajs/framework/workflows-sdk"
|
||||||
import { emitEventStep } from "../../common/steps/emit-event"
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links"
|
import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links"
|
||||||
import { deleteShippingOptionTypesStep } from "../steps"
|
import { deleteShippingOptionTypesStep } from "../steps"
|
||||||
|
import { useQueryGraphStep } from "../../common"
|
||||||
|
|
||||||
|
const validateDeleteShippingOptionTypesStep = createStep(
|
||||||
|
"validate-delete-shipping-option-types",
|
||||||
|
(input: { shippingOptions: { id: string }[] }) => {
|
||||||
|
const shippingOptions = input.shippingOptions
|
||||||
|
|
||||||
|
if (shippingOptions.length > 0) {
|
||||||
|
throw new MedusaError(
|
||||||
|
MedusaError.Types.INVALID_DATA,
|
||||||
|
"Cannot delete shipping option type because some shipping options are using it."
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The data to delete one or more shipping option types.
|
* The data to delete one or more shipping option types.
|
||||||
@@ -21,7 +41,8 @@ export type DeleteShippingOptionTypesWorkflowInput = {
|
|||||||
ids: string[]
|
ids: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export const deleteShippingOptionTypesWorkflowId = "delete-shipping-option-types"
|
export const deleteShippingOptionTypesWorkflowId =
|
||||||
|
"delete-shipping-option-types"
|
||||||
/**
|
/**
|
||||||
* This workflow deletes one or more shipping-option types. It's used by the
|
* This workflow deletes one or more shipping-option types. It's used by the
|
||||||
* [Delete Shipping Option Types Admin API Route](TODO HERE).
|
* [Delete Shipping Option Types Admin API Route](TODO HERE).
|
||||||
@@ -48,11 +69,31 @@ export const deleteShippingOptionTypesWorkflowId = "delete-shipping-option-types
|
|||||||
export const deleteShippingOptionTypesWorkflow = createWorkflow(
|
export const deleteShippingOptionTypesWorkflow = createWorkflow(
|
||||||
deleteShippingOptionTypesWorkflowId,
|
deleteShippingOptionTypesWorkflowId,
|
||||||
(input: WorkflowData<DeleteShippingOptionTypesWorkflowInput>) => {
|
(input: WorkflowData<DeleteShippingOptionTypesWorkflowInput>) => {
|
||||||
const deletedShippingOptionTypes = deleteShippingOptionTypesStep(input.ids)
|
const shippingOptionsQuery = useQueryGraphStep({
|
||||||
const shippingOptionTypesDeleted = createHook("shippingOptionTypesDeleted", {
|
entity: "shipping_option",
|
||||||
ids: input.ids,
|
filters: { shipping_option_type_id: input.ids },
|
||||||
|
pagination: { take: 1 },
|
||||||
|
fields: ["id"],
|
||||||
|
}).config({ name: "get-shipping-options" })
|
||||||
|
|
||||||
|
const shippingOptions = transform(
|
||||||
|
{ shippingOptionsQuery },
|
||||||
|
({ shippingOptionsQuery }) =>
|
||||||
|
shippingOptionsQuery.data as { id: string }[]
|
||||||
|
)
|
||||||
|
|
||||||
|
validateDeleteShippingOptionTypesStep({
|
||||||
|
shippingOptions,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const deletedShippingOptionTypes = deleteShippingOptionTypesStep(input.ids)
|
||||||
|
const shippingOptionTypesDeleted = createHook(
|
||||||
|
"shippingOptionTypesDeleted",
|
||||||
|
{
|
||||||
|
ids: input.ids,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
const typeIdEvents = transform({ input }, ({ input }) => {
|
const typeIdEvents = transform({ input }, ({ input }) => {
|
||||||
return input.ids?.map((id) => {
|
return input.ids?.map((id) => {
|
||||||
return { id }
|
return { id }
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ function expectSoftDeleted(
|
|||||||
let shippingOption = serviceZone.shipping_options[0]
|
let shippingOption = serviceZone.shipping_options[0]
|
||||||
expect(!!shippingOption.deleted_at).toEqual(softDeleted)
|
expect(!!shippingOption.deleted_at).toEqual(softDeleted)
|
||||||
expect(!!shippingOption.shipping_profile.deleted_at).toEqual(false)
|
expect(!!shippingOption.shipping_profile.deleted_at).toEqual(false)
|
||||||
expect(!!shippingOption.type.deleted_at).toEqual(softDeleted)
|
expect(!!shippingOption.type.deleted_at).toEqual(false) // do not cascade delete shipping option type since it is shared between shipping options
|
||||||
expect(shippingOption.fulfillments).toHaveLength(1)
|
expect(shippingOption.fulfillments).toHaveLength(1)
|
||||||
expect(shippingOption.rules).toHaveLength(1)
|
expect(shippingOption.rules).toHaveLength(1)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
{
|
{
|
||||||
"namespaces": ["public"],
|
"namespaces": [
|
||||||
|
"public"
|
||||||
|
],
|
||||||
"name": "public",
|
"name": "public",
|
||||||
"tables": [
|
"tables": [
|
||||||
{
|
{
|
||||||
@@ -159,7 +161,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_address_pkey",
|
"keyName": "fulfillment_address_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -238,7 +242,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_provider_pkey",
|
"keyName": "fulfillment_provider_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -343,7 +349,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_set_pkey",
|
"keyName": "fulfillment_set_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -457,7 +465,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "service_zone_pkey",
|
"keyName": "service_zone_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -468,9 +478,13 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"service_zone_fulfillment_set_id_foreign": {
|
"service_zone_fulfillment_set_id_foreign": {
|
||||||
"constraintName": "service_zone_fulfillment_set_id_foreign",
|
"constraintName": "service_zone_fulfillment_set_id_foreign",
|
||||||
"columnNames": ["fulfillment_set_id"],
|
"columnNames": [
|
||||||
|
"fulfillment_set_id"
|
||||||
|
],
|
||||||
"localTableName": "public.service_zone",
|
"localTableName": "public.service_zone",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment_set",
|
"referencedTableName": "public.fulfillment_set",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
@@ -497,7 +511,12 @@
|
|||||||
"primary": false,
|
"primary": false,
|
||||||
"nullable": false,
|
"nullable": false,
|
||||||
"default": "'country'",
|
"default": "'country'",
|
||||||
"enumItems": ["country", "province", "city", "zip"],
|
"enumItems": [
|
||||||
|
"country",
|
||||||
|
"province",
|
||||||
|
"city",
|
||||||
|
"zip"
|
||||||
|
],
|
||||||
"mappedType": "enum"
|
"mappedType": "enum"
|
||||||
},
|
},
|
||||||
"country_code": {
|
"country_code": {
|
||||||
@@ -637,7 +656,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "geo_zone_pkey",
|
"keyName": "geo_zone_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -648,9 +669,13 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"geo_zone_service_zone_id_foreign": {
|
"geo_zone_service_zone_id_foreign": {
|
||||||
"constraintName": "geo_zone_service_zone_id_foreign",
|
"constraintName": "geo_zone_service_zone_id_foreign",
|
||||||
"columnNames": ["service_zone_id"],
|
"columnNames": [
|
||||||
|
"service_zone_id"
|
||||||
|
],
|
||||||
"localTableName": "public.geo_zone",
|
"localTableName": "public.geo_zone",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.service_zone",
|
"referencedTableName": "public.service_zone",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
@@ -743,7 +768,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "shipping_option_type_pkey",
|
"keyName": "shipping_option_type_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -848,7 +875,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "shipping_profile_pkey",
|
"keyName": "shipping_profile_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -887,7 +916,10 @@
|
|||||||
"primary": false,
|
"primary": false,
|
||||||
"nullable": false,
|
"nullable": false,
|
||||||
"default": "'flat'",
|
"default": "'flat'",
|
||||||
"enumItems": ["calculated", "flat"],
|
"enumItems": [
|
||||||
|
"calculated",
|
||||||
|
"flat"
|
||||||
|
],
|
||||||
"mappedType": "enum"
|
"mappedType": "enum"
|
||||||
},
|
},
|
||||||
"data": {
|
"data": {
|
||||||
@@ -980,14 +1012,6 @@
|
|||||||
"name": "shipping_option",
|
"name": "shipping_option",
|
||||||
"schema": "public",
|
"schema": "public",
|
||||||
"indexes": [
|
"indexes": [
|
||||||
{
|
|
||||||
"columnNames": ["shipping_option_type_id"],
|
|
||||||
"composite": false,
|
|
||||||
"keyName": "shipping_option_shipping_option_type_id_unique",
|
|
||||||
"constraint": true,
|
|
||||||
"primary": false,
|
|
||||||
"unique": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"keyName": "IDX_shipping_option_service_zone_id",
|
"keyName": "IDX_shipping_option_service_zone_id",
|
||||||
"columnNames": [],
|
"columnNames": [],
|
||||||
@@ -1026,7 +1050,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "shipping_option_pkey",
|
"keyName": "shipping_option_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -1037,36 +1063,52 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"shipping_option_service_zone_id_foreign": {
|
"shipping_option_service_zone_id_foreign": {
|
||||||
"constraintName": "shipping_option_service_zone_id_foreign",
|
"constraintName": "shipping_option_service_zone_id_foreign",
|
||||||
"columnNames": ["service_zone_id"],
|
"columnNames": [
|
||||||
|
"service_zone_id"
|
||||||
|
],
|
||||||
"localTableName": "public.shipping_option",
|
"localTableName": "public.shipping_option",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.service_zone",
|
"referencedTableName": "public.service_zone",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
},
|
},
|
||||||
"shipping_option_shipping_profile_id_foreign": {
|
"shipping_option_shipping_profile_id_foreign": {
|
||||||
"constraintName": "shipping_option_shipping_profile_id_foreign",
|
"constraintName": "shipping_option_shipping_profile_id_foreign",
|
||||||
"columnNames": ["shipping_profile_id"],
|
"columnNames": [
|
||||||
|
"shipping_profile_id"
|
||||||
|
],
|
||||||
"localTableName": "public.shipping_option",
|
"localTableName": "public.shipping_option",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.shipping_profile",
|
"referencedTableName": "public.shipping_profile",
|
||||||
"deleteRule": "set null",
|
"deleteRule": "set null",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
},
|
},
|
||||||
"shipping_option_provider_id_foreign": {
|
"shipping_option_provider_id_foreign": {
|
||||||
"constraintName": "shipping_option_provider_id_foreign",
|
"constraintName": "shipping_option_provider_id_foreign",
|
||||||
"columnNames": ["provider_id"],
|
"columnNames": [
|
||||||
|
"provider_id"
|
||||||
|
],
|
||||||
"localTableName": "public.shipping_option",
|
"localTableName": "public.shipping_option",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment_provider",
|
"referencedTableName": "public.fulfillment_provider",
|
||||||
"deleteRule": "set null",
|
"deleteRule": "set null",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
},
|
},
|
||||||
"shipping_option_shipping_option_type_id_foreign": {
|
"shipping_option_shipping_option_type_id_foreign": {
|
||||||
"constraintName": "shipping_option_shipping_option_type_id_foreign",
|
"constraintName": "shipping_option_shipping_option_type_id_foreign",
|
||||||
"columnNames": ["shipping_option_type_id"],
|
"columnNames": [
|
||||||
|
"shipping_option_type_id"
|
||||||
|
],
|
||||||
"localTableName": "public.shipping_option",
|
"localTableName": "public.shipping_option",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.shipping_option_type",
|
"referencedTableName": "public.shipping_option_type",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
}
|
}
|
||||||
@@ -1100,7 +1142,16 @@
|
|||||||
"autoincrement": false,
|
"autoincrement": false,
|
||||||
"primary": false,
|
"primary": false,
|
||||||
"nullable": false,
|
"nullable": false,
|
||||||
"enumItems": ["in", "eq", "ne", "gt", "gte", "lt", "lte", "nin"],
|
"enumItems": [
|
||||||
|
"in",
|
||||||
|
"eq",
|
||||||
|
"ne",
|
||||||
|
"gt",
|
||||||
|
"gte",
|
||||||
|
"lt",
|
||||||
|
"lte",
|
||||||
|
"nin"
|
||||||
|
],
|
||||||
"mappedType": "enum"
|
"mappedType": "enum"
|
||||||
},
|
},
|
||||||
"value": {
|
"value": {
|
||||||
@@ -1177,7 +1228,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "shipping_option_rule_pkey",
|
"keyName": "shipping_option_rule_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -1188,9 +1241,13 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"shipping_option_rule_shipping_option_id_foreign": {
|
"shipping_option_rule_shipping_option_id_foreign": {
|
||||||
"constraintName": "shipping_option_rule_shipping_option_id_foreign",
|
"constraintName": "shipping_option_rule_shipping_option_id_foreign",
|
||||||
"columnNames": ["shipping_option_id"],
|
"columnNames": [
|
||||||
|
"shipping_option_id"
|
||||||
|
],
|
||||||
"localTableName": "public.shipping_option_rule",
|
"localTableName": "public.shipping_option_rule",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.shipping_option",
|
"referencedTableName": "public.shipping_option",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
@@ -1367,22 +1424,6 @@
|
|||||||
"name": "fulfillment",
|
"name": "fulfillment",
|
||||||
"schema": "public",
|
"schema": "public",
|
||||||
"indexes": [
|
"indexes": [
|
||||||
{
|
|
||||||
"columnNames": ["provider_id"],
|
|
||||||
"composite": false,
|
|
||||||
"keyName": "fulfillment_provider_id_unique",
|
|
||||||
"constraint": true,
|
|
||||||
"primary": false,
|
|
||||||
"unique": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columnNames": ["delivery_address_id"],
|
|
||||||
"composite": false,
|
|
||||||
"keyName": "fulfillment_delivery_address_id_unique",
|
|
||||||
"constraint": true,
|
|
||||||
"primary": false,
|
|
||||||
"unique": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"keyName": "IDX_fulfillment_shipping_option_id",
|
"keyName": "IDX_fulfillment_shipping_option_id",
|
||||||
"columnNames": [],
|
"columnNames": [],
|
||||||
@@ -1412,7 +1453,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_pkey",
|
"keyName": "fulfillment_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -1423,27 +1466,39 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"fulfillment_provider_id_foreign": {
|
"fulfillment_provider_id_foreign": {
|
||||||
"constraintName": "fulfillment_provider_id_foreign",
|
"constraintName": "fulfillment_provider_id_foreign",
|
||||||
"columnNames": ["provider_id"],
|
"columnNames": [
|
||||||
|
"provider_id"
|
||||||
|
],
|
||||||
"localTableName": "public.fulfillment",
|
"localTableName": "public.fulfillment",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment_provider",
|
"referencedTableName": "public.fulfillment_provider",
|
||||||
"deleteRule": "set null",
|
"deleteRule": "set null",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
},
|
},
|
||||||
"fulfillment_shipping_option_id_foreign": {
|
"fulfillment_shipping_option_id_foreign": {
|
||||||
"constraintName": "fulfillment_shipping_option_id_foreign",
|
"constraintName": "fulfillment_shipping_option_id_foreign",
|
||||||
"columnNames": ["shipping_option_id"],
|
"columnNames": [
|
||||||
|
"shipping_option_id"
|
||||||
|
],
|
||||||
"localTableName": "public.fulfillment",
|
"localTableName": "public.fulfillment",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.shipping_option",
|
"referencedTableName": "public.shipping_option",
|
||||||
"deleteRule": "set null",
|
"deleteRule": "set null",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
},
|
},
|
||||||
"fulfillment_delivery_address_id_foreign": {
|
"fulfillment_delivery_address_id_foreign": {
|
||||||
"constraintName": "fulfillment_delivery_address_id_foreign",
|
"constraintName": "fulfillment_delivery_address_id_foreign",
|
||||||
"columnNames": ["delivery_address_id"],
|
"columnNames": [
|
||||||
|
"delivery_address_id"
|
||||||
|
],
|
||||||
"localTableName": "public.fulfillment",
|
"localTableName": "public.fulfillment",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment_address",
|
"referencedTableName": "public.fulfillment_address",
|
||||||
"deleteRule": "set null",
|
"deleteRule": "set null",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
@@ -1554,7 +1609,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_label_pkey",
|
"keyName": "fulfillment_label_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -1565,9 +1622,13 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"fulfillment_label_fulfillment_id_foreign": {
|
"fulfillment_label_fulfillment_id_foreign": {
|
||||||
"constraintName": "fulfillment_label_fulfillment_id_foreign",
|
"constraintName": "fulfillment_label_fulfillment_id_foreign",
|
||||||
"columnNames": ["fulfillment_id"],
|
"columnNames": [
|
||||||
|
"fulfillment_id"
|
||||||
|
],
|
||||||
"localTableName": "public.fulfillment_label",
|
"localTableName": "public.fulfillment_label",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment",
|
"referencedTableName": "public.fulfillment",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
@@ -1732,7 +1793,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"keyName": "fulfillment_item_pkey",
|
"keyName": "fulfillment_item_pkey",
|
||||||
"columnNames": ["id"],
|
"columnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"composite": false,
|
"composite": false,
|
||||||
"constraint": true,
|
"constraint": true,
|
||||||
"primary": true,
|
"primary": true,
|
||||||
@@ -1743,9 +1806,13 @@
|
|||||||
"foreignKeys": {
|
"foreignKeys": {
|
||||||
"fulfillment_item_fulfillment_id_foreign": {
|
"fulfillment_item_fulfillment_id_foreign": {
|
||||||
"constraintName": "fulfillment_item_fulfillment_id_foreign",
|
"constraintName": "fulfillment_item_fulfillment_id_foreign",
|
||||||
"columnNames": ["fulfillment_id"],
|
"columnNames": [
|
||||||
|
"fulfillment_id"
|
||||||
|
],
|
||||||
"localTableName": "public.fulfillment_item",
|
"localTableName": "public.fulfillment_item",
|
||||||
"referencedColumnNames": ["id"],
|
"referencedColumnNames": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
"referencedTableName": "public.fulfillment",
|
"referencedTableName": "public.fulfillment",
|
||||||
"deleteRule": "cascade",
|
"deleteRule": "cascade",
|
||||||
"updateRule": "cascade"
|
"updateRule": "cascade"
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { Migration } from "@mikro-orm/migrations"
|
||||||
|
|
||||||
|
export class Migration20250822130931 extends Migration {
|
||||||
|
override async up(): Promise<void> {
|
||||||
|
'alter table if exists "shipping_option" drop constraint if exists "shipping_option_shipping_option_type_id_foreign", add constraint "shipping_option_shipping_option_type_id_foreign" foreign key ("shipping_option_type_id") references "shipping_option_type" ("id") on update cascade;'
|
||||||
|
}
|
||||||
|
|
||||||
|
override async down(): Promise<void> {}
|
||||||
|
}
|
||||||
@@ -38,5 +38,5 @@ export const ShippingOption = model
|
|||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
.cascades({
|
.cascades({
|
||||||
delete: ["rules", "type"],
|
delete: ["rules"],
|
||||||
})
|
})
|
||||||
Reference in new issue
Block a user