refactor: migrate promotion module (#10410)
This commit is contained in:
@@ -2326,7 +2326,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
},
|
||||
created_at: {
|
||||
@@ -2508,7 +2507,7 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
onDelete: undefined,
|
||||
},
|
||||
created_at: {
|
||||
reference: "scalar",
|
||||
@@ -2595,7 +2594,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "owner",
|
||||
},
|
||||
created_at: {
|
||||
@@ -2687,7 +2685,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
cascade: ["persist", "soft-remove"],
|
||||
onDelete: "cascade",
|
||||
@@ -2851,9 +2848,7 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
cascade: ["persist", "soft-remove"],
|
||||
onDelete: "cascade",
|
||||
},
|
||||
created_at: {
|
||||
@@ -3040,7 +3035,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
},
|
||||
email_id: {
|
||||
columnType: "text",
|
||||
@@ -3251,7 +3245,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "owner",
|
||||
},
|
||||
email_id: {
|
||||
@@ -3356,7 +3349,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
cascade: ["persist", "soft-remove"],
|
||||
mappedBy: "user",
|
||||
},
|
||||
@@ -3532,7 +3524,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
cascade: ["persist", "soft-remove"],
|
||||
mappedBy: "user",
|
||||
},
|
||||
@@ -4493,7 +4484,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
},
|
||||
created_at: {
|
||||
@@ -4691,7 +4681,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
},
|
||||
created_at: {
|
||||
@@ -5326,7 +5315,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
},
|
||||
created_at: {
|
||||
@@ -5526,7 +5514,6 @@ describe("Entity builder", () => {
|
||||
reference: "1:1",
|
||||
name: "email",
|
||||
entity: "Email",
|
||||
nullable: false,
|
||||
mappedBy: "user",
|
||||
},
|
||||
created_at: {
|
||||
@@ -5838,7 +5825,6 @@ describe("Entity builder", () => {
|
||||
entity: "User",
|
||||
mappedBy: "parent",
|
||||
name: "child",
|
||||
nullable: false,
|
||||
reference: "1:1",
|
||||
},
|
||||
created_at: {
|
||||
|
||||
@@ -25,6 +25,7 @@ import { HasOneWithForeignKey } from "../../relations/has-one-fk"
|
||||
import { ManyToMany as DmlManyToMany } from "../../relations/many-to-many"
|
||||
import { applyEntityIndexes } from "../mikro-orm/apply-indexes"
|
||||
import { parseEntityName } from "./parse-entity-name"
|
||||
import { BelongsTo } from "../../relations"
|
||||
|
||||
type Context = {
|
||||
MANY_TO_MANY_TRACKED_RELATIONS: Record<string, boolean>
|
||||
@@ -138,24 +139,32 @@ function validateManyToManyRelationshipWithoutMappedBy({
|
||||
export function defineHasOneRelationship(
|
||||
MikroORMEntity: EntityConstructor<any>,
|
||||
relationship: RelationshipMetadata,
|
||||
relatedEntity: DmlEntity<
|
||||
Record<string, PropertyType<any> | RelationshipType<any>>,
|
||||
any
|
||||
>,
|
||||
{ relatedModelName }: { relatedModelName: string },
|
||||
cascades: EntityCascades<string[]>
|
||||
) {
|
||||
const shouldRemoveRelated = !!cascades.delete?.includes(relationship.name)
|
||||
const { schema: relationSchema } = relatedEntity.parse()
|
||||
|
||||
let mappedBy: string | undefined = camelToSnakeCase(MikroORMEntity.name)
|
||||
if ("mappedBy" in relationship) {
|
||||
mappedBy = relationship.mappedBy
|
||||
}
|
||||
|
||||
const isOthersideBelongsTo =
|
||||
!!mappedBy && BelongsTo.isBelongsTo(relationSchema[mappedBy])
|
||||
|
||||
const oneToOneOptions = {
|
||||
entity: relatedModelName,
|
||||
nullable: relationship.nullable,
|
||||
...(relationship.nullable ? { nullable: relationship.nullable } : {}),
|
||||
...(mappedBy ? { mappedBy } : {}),
|
||||
onDelete: shouldRemoveRelated ? "cascade" : undefined,
|
||||
} as OneToOneOptions<any, any>
|
||||
|
||||
if (shouldRemoveRelated) {
|
||||
if (shouldRemoveRelated && !isOthersideBelongsTo) {
|
||||
oneToOneOptions.cascade = ["persist", "soft-remove"] as any
|
||||
}
|
||||
|
||||
@@ -182,7 +191,7 @@ export function defineHasOneWithFKRelationship(
|
||||
|
||||
OneToOne({
|
||||
entity: relatedModelName,
|
||||
nullable: relationship.nullable,
|
||||
...(relationship.nullable ? { nullable: relationship.nullable } : {}),
|
||||
...(mappedBy ? { mappedBy } : {}),
|
||||
cascade: shouldRemoveRelated
|
||||
? (["persist", "soft-remove"] as any)
|
||||
@@ -697,6 +706,7 @@ export function defineRelationship(
|
||||
defineHasOneRelationship(
|
||||
MikroORMEntity,
|
||||
relationship,
|
||||
relatedEntity,
|
||||
relatedEntityInfo,
|
||||
cascades
|
||||
)
|
||||
|
||||
@@ -16,6 +16,7 @@ export function applyIndexes(
|
||||
) {
|
||||
field.indexes.forEach((index) => {
|
||||
const providerEntityIdIndexStatement = createPsqlIndexStatementHelper({
|
||||
name: index.name,
|
||||
tableName,
|
||||
columns: [field.fieldName],
|
||||
unique: index.type === "unique",
|
||||
|
||||
Reference in New Issue
Block a user