chore: create indexes on foreign keys (#164)

This commit is contained in:
Sebastian Rindom
2021-02-03 13:02:58 +01:00
committed by GitHub
parent 698c63da8a
commit 15450546f0
23 changed files with 251 additions and 1 deletions

View File

@@ -0,0 +1,191 @@
import { MigrationInterface, QueryRunner } from "typeorm"
export class indexes1612353094577 implements MigrationInterface {
name = "indexes1612353094577"
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE INDEX "IDX_21cbfedd83d736d86f4c6f4ce5" ON "claim_image" ("claim_item_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_7234ed737ff4eb1b6ae6e6d7b0" ON "product_option_value" ("variant_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_b1aac8314662fa6b25569a575b" ON "country" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_012a62ba743e427b5ebe9dee18" ON "shipping_option_requirement" ("shipping_option_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_5c58105f1752fca0f4ce69f466" ON "shipping_option" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_c951439af4c98bf2bd7fb8726c" ON "shipping_option" ("profile_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_a0e206bfaed3cb63c186091734" ON "shipping_option" ("provider_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_80823b7ae866dc5acae2dac6d2" ON "product" ("profile_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_17a06d728e4cfbc5bd2ddb70af" ON "money_amount" ("variant_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_b433e27b7a83e6d12ab26b15b0" ON "money_amount" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_ca67dd080aac5ecf99609960cd" ON "product_variant" ("product_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_ac2c280de3701b2d66f6817f76" ON "discount" ("rule_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_d25ba0787e1510ddc5d442ebcf" ON "payment_session" ("cart_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_d18ad72f2fb7c87f075825b6f8" ON "payment_session" ("provider_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_c17aff091441b7c25ec3d68d36" ON "payment" ("swap_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_4665f17abc1e81dd58330e5854" ON "payment" ("cart_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_f5221735ace059250daac9d980" ON "payment" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_ea94f42b6c88e9191c3649d752" ON "payment" ("provider_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_b6bcf8c3903097b84e85154eed" ON "gift_card" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_dfc1f02bb0552e79076aa58dbb" ON "gift_card" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_6b9c66b5e36f7c827dfaa092f9" ON "cart" ("billing_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_ced15a9a695d2b5db9dabce763" ON "cart" ("shipping_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_484c329f4783be4e18e5e2ff09" ON "cart" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_242205c81c1152fab1b6e84847" ON "cart" ("customer_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_9d1a161434c610aae7c3df2dc7" ON "cart" ("payment_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_bad82d7bff2b08b87094bfac3d" ON "return" ("swap_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_71773d56eb2bacb922bc328339" ON "return" ("claim_order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_d4bd17f918fc6c332b74a368c3" ON "return" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_f49e3974465d3c3a33d449d3f3" ON "claim_order" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_017d58bf8260c6e1a2588d258e" ON "claim_order" ("shipping_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_d73e55964e0ff2db8f03807d52" ON "fulfillment" ("claim_order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_a52e234f729db789cf473297a5" ON "fulfillment" ("swap_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_f129acc85e346a10eed12b86fc" ON "fulfillment" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_beb35a6de60a6c4f91d5ae57e4" ON "fulfillment" ("provider_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_52dd74e8c989aa5665ad2852b8" ON "swap" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_d7d441b81012f87d4265fa57d2" ON "gift_card_transaction" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_eec9d9af4ca098e19ea6b499ea" ON "refund" ("order_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_579e01fb94f4f58db480857e05" ON "order" ("display_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_c99a206eb11ad45f6b7f04f2dc" ON "order" ("cart_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_cd7812c96209c5bdd48a6b858b" ON "order" ("customer_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_5568d3b9ce9f7abeeb37511ecf" ON "order" ("billing_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_19b0c6293443d1b464f604c331" ON "order" ("shipping_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_e1fcce2b18dbcdbe0a5ba9a68b" ON "order" ("region_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_8abe81b9aac151ae60bf507ad1" ON "customer" ("billing_address_id") `
)
await queryRunner.query(
`CREATE INDEX "IDX_9c9614b2f9d01665800ea8dbff" ON "address" ("customer_id") `
)
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_9c9614b2f9d01665800ea8dbff"`)
await queryRunner.query(`DROP INDEX "IDX_8abe81b9aac151ae60bf507ad1"`)
await queryRunner.query(`DROP INDEX "IDX_e1fcce2b18dbcdbe0a5ba9a68b"`)
await queryRunner.query(`DROP INDEX "IDX_19b0c6293443d1b464f604c331"`)
await queryRunner.query(`DROP INDEX "IDX_5568d3b9ce9f7abeeb37511ecf"`)
await queryRunner.query(`DROP INDEX "IDX_cd7812c96209c5bdd48a6b858b"`)
await queryRunner.query(`DROP INDEX "IDX_c99a206eb11ad45f6b7f04f2dc"`)
await queryRunner.query(`DROP INDEX "IDX_579e01fb94f4f58db480857e05"`)
await queryRunner.query(`DROP INDEX "IDX_eec9d9af4ca098e19ea6b499ea"`)
await queryRunner.query(`DROP INDEX "IDX_d7d441b81012f87d4265fa57d2"`)
await queryRunner.query(`DROP INDEX "IDX_52dd74e8c989aa5665ad2852b8"`)
await queryRunner.query(`DROP INDEX "IDX_beb35a6de60a6c4f91d5ae57e4"`)
await queryRunner.query(`DROP INDEX "IDX_f129acc85e346a10eed12b86fc"`)
await queryRunner.query(`DROP INDEX "IDX_a52e234f729db789cf473297a5"`)
await queryRunner.query(`DROP INDEX "IDX_d73e55964e0ff2db8f03807d52"`)
await queryRunner.query(`DROP INDEX "IDX_017d58bf8260c6e1a2588d258e"`)
await queryRunner.query(`DROP INDEX "IDX_f49e3974465d3c3a33d449d3f3"`)
await queryRunner.query(`DROP INDEX "IDX_d4bd17f918fc6c332b74a368c3"`)
await queryRunner.query(`DROP INDEX "IDX_71773d56eb2bacb922bc328339"`)
await queryRunner.query(`DROP INDEX "IDX_bad82d7bff2b08b87094bfac3d"`)
await queryRunner.query(`DROP INDEX "IDX_9d1a161434c610aae7c3df2dc7"`)
await queryRunner.query(`DROP INDEX "IDX_242205c81c1152fab1b6e84847"`)
await queryRunner.query(`DROP INDEX "IDX_484c329f4783be4e18e5e2ff09"`)
await queryRunner.query(`DROP INDEX "IDX_ced15a9a695d2b5db9dabce763"`)
await queryRunner.query(`DROP INDEX "IDX_6b9c66b5e36f7c827dfaa092f9"`)
await queryRunner.query(`DROP INDEX "IDX_dfc1f02bb0552e79076aa58dbb"`)
await queryRunner.query(`DROP INDEX "IDX_b6bcf8c3903097b84e85154eed"`)
await queryRunner.query(`DROP INDEX "IDX_ea94f42b6c88e9191c3649d752"`)
await queryRunner.query(`DROP INDEX "IDX_f5221735ace059250daac9d980"`)
await queryRunner.query(`DROP INDEX "IDX_4665f17abc1e81dd58330e5854"`)
await queryRunner.query(`DROP INDEX "IDX_c17aff091441b7c25ec3d68d36"`)
await queryRunner.query(`DROP INDEX "IDX_d18ad72f2fb7c87f075825b6f8"`)
await queryRunner.query(`DROP INDEX "IDX_d25ba0787e1510ddc5d442ebcf"`)
await queryRunner.query(`DROP INDEX "IDX_ac2c280de3701b2d66f6817f76"`)
await queryRunner.query(`DROP INDEX "IDX_ca67dd080aac5ecf99609960cd"`)
await queryRunner.query(`DROP INDEX "IDX_b433e27b7a83e6d12ab26b15b0"`)
await queryRunner.query(`DROP INDEX "IDX_17a06d728e4cfbc5bd2ddb70af"`)
await queryRunner.query(`DROP INDEX "IDX_80823b7ae866dc5acae2dac6d2"`)
await queryRunner.query(`DROP INDEX "IDX_a0e206bfaed3cb63c186091734"`)
await queryRunner.query(`DROP INDEX "IDX_c951439af4c98bf2bd7fb8726c"`)
await queryRunner.query(`DROP INDEX "IDX_5c58105f1752fca0f4ce69f466"`)
await queryRunner.query(`DROP INDEX "IDX_012a62ba743e427b5ebe9dee18"`)
await queryRunner.query(`DROP INDEX "IDX_b1aac8314662fa6b25569a575b"`)
await queryRunner.query(`DROP INDEX "IDX_7234ed737ff4eb1b6ae6e6d7b0"`)
await queryRunner.query(`DROP INDEX "IDX_21cbfedd83d736d86f4c6f4ce5"`)
}
}

View File

@@ -1,5 +1,6 @@
import {
Entity,
Index,
BeforeInsert,
Column,
DeleteDateColumn,
@@ -19,6 +20,7 @@ export class Address {
@PrimaryColumn()
id: string
@Index()
@Column({ nullable: true })
customer_id: string

View File

@@ -1,6 +1,7 @@
import {
Entity,
BeforeInsert,
Index,
Column,
DeleteDateColumn,
CreateDateColumn,
@@ -42,6 +43,7 @@ export class Cart {
@Column({ nullable: true })
email: string
@Index()
@Column({ nullable: true })
billing_address_id: string
@@ -51,6 +53,7 @@ export class Cart {
@JoinColumn({ name: "billing_address_id" })
billing_address: Address
@Index()
@Column({ nullable: true })
shipping_address_id: string
@@ -67,6 +70,7 @@ export class Cart {
)
items: LineItem[]
@Index()
@Column()
region_id: string
@@ -102,6 +106,7 @@ export class Cart {
})
gift_cards: GiftCard
@Index()
@Column({ nullable: true })
customer_id: string
@@ -118,6 +123,7 @@ export class Cart {
)
payment_sessions: PaymentSession[]
@Index()
@Column({ nullable: true })
payment_id: string

View File

@@ -1,5 +1,6 @@
import {
Entity,
Index,
BeforeInsert,
DeleteDateColumn,
CreateDateColumn,
@@ -18,6 +19,7 @@ export class ClaimImage {
@PrimaryColumn()
id: string
@Index()
@Column()
claim_item_id: string

View File

@@ -80,6 +80,7 @@ export class ClaimOrder {
@Column({ type: "enum", enum: ClaimType })
type: ClaimType
@Index()
@Column()
order_id: string
@@ -96,6 +97,7 @@ export class ClaimOrder {
)
return_order: Return
@Index()
@Column({ nullable: true })
shipping_address_id: string

View File

@@ -30,6 +30,7 @@ export class Country {
@Column()
display_name: string
@Index()
@Column({ nullable: true })
region_id: string

View File

@@ -31,6 +31,7 @@ export class Customer {
@Column({ nullable: true })
last_name: string
@Index()
@Column({ nullable: true })
billing_address_id: string

View File

@@ -30,6 +30,7 @@ export class Discount {
@Column()
is_dynamic: boolean
@Index()
@Column({ nullable: true })
rule_id: string

View File

@@ -3,6 +3,7 @@ import {
RelationId,
BeforeInsert,
Column,
Index,
DeleteDateColumn,
CreateDateColumn,
UpdateDateColumn,
@@ -27,6 +28,7 @@ export class Fulfillment {
@PrimaryColumn()
id: string
@Index()
@Column({ nullable: true })
claim_order_id: string
@@ -37,6 +39,7 @@ export class Fulfillment {
@JoinColumn({ name: "claim_order_id" })
claim_order: ClaimOrder
@Index()
@Column({ nullable: true })
swap_id: string
@@ -47,6 +50,7 @@ export class Fulfillment {
@JoinColumn({ name: "swap_id" })
swap: Swap
@Index()
@Column({ nullable: true })
order_id: string
@@ -57,6 +61,7 @@ export class Fulfillment {
@JoinColumn({ name: "order_id" })
order: Order
@Index()
@Column()
provider_id: string

View File

@@ -1,6 +1,7 @@
import {
Entity,
BeforeInsert,
Index,
CreateDateColumn,
Column,
PrimaryColumn,
@@ -26,6 +27,7 @@ export class GiftCardTransaction {
@JoinColumn({ name: "gift_card_id" })
gift_card: GiftCard
@Index()
@Column()
order_id: string

View File

@@ -31,6 +31,7 @@ export class GiftCard {
@Column("int")
balance: number
@Index()
@Column()
region_id: string
@@ -38,6 +39,7 @@ export class GiftCard {
@JoinColumn({ name: "region_id" })
region: Region
@Index()
@Column({ nullable: true })
order_id: string

View File

@@ -5,6 +5,7 @@ import {
DeleteDateColumn,
CreateDateColumn,
UpdateDateColumn,
Index,
RelationId,
PrimaryColumn,
OneToOne,
@@ -38,6 +39,7 @@ export class MoneyAmount {
@Column({ type: "int", nullable: true, default: null })
sale_amount: number
@Index()
@Column({ nullable: true })
variant_id: string
@@ -45,6 +47,7 @@ export class MoneyAmount {
@JoinColumn({ name: "variant_id" })
variant: ProductVariant
@Index()
@Column({ nullable: true })
region_id: string

View File

@@ -2,6 +2,7 @@ import {
Entity,
Generated,
BeforeInsert,
Index,
Column,
CreateDateColumn,
UpdateDateColumn,
@@ -76,10 +77,12 @@ export class Order {
@Column({ type: "enum", enum: PaymentStatus, default: "not_paid" })
payment_status: PaymentStatus
@Index()
@Column()
@Generated("increment")
display_id: number
@Index()
@Column({ nullable: true })
cart_id: string
@@ -87,6 +90,7 @@ export class Order {
@JoinColumn({ name: "cart_id" })
cart: Cart
@Index()
@Column()
customer_id: string
@@ -97,6 +101,7 @@ export class Order {
@Column()
email: string
@Index()
@Column({ nullable: true })
billing_address_id: string
@@ -104,6 +109,7 @@ export class Order {
@JoinColumn({ name: "billing_address_id" })
billing_address: Address
@Index()
@Column({ nullable: true })
shipping_address_id: string
@@ -111,6 +117,7 @@ export class Order {
@JoinColumn({ name: "shipping_address_id" })
shipping_address: Address
@Index()
@Column()
region_id: string

View File

@@ -2,6 +2,7 @@ import {
Entity,
CreateDateColumn,
UpdateDateColumn,
Index,
BeforeInsert,
Column,
PrimaryColumn,
@@ -9,7 +10,7 @@ import {
JoinColumn,
Unique,
} from "typeorm"
import {ulid } from "ulid"
import { ulid } from "ulid"
import { Cart } from "./cart"
export enum PaymentSessionStatus {
@@ -26,6 +27,7 @@ export class PaymentSession {
@PrimaryColumn()
id: string
@Index()
@Column()
cart_id: string
@@ -36,6 +38,7 @@ export class PaymentSession {
@JoinColumn({ name: "cart_id" })
cart: Cart
@Index()
@Column()
provider_id: string

View File

@@ -1,5 +1,6 @@
import {
Entity,
Index,
BeforeInsert,
Column,
CreateDateColumn,
@@ -21,6 +22,7 @@ export class Payment {
@PrimaryColumn()
id: string
@Index()
@Column({ nullable: true })
swap_id: string
@@ -28,6 +30,7 @@ export class Payment {
@JoinColumn({ name: "swap_id" })
swap: Swap
@Index()
@Column({ nullable: true })
cart_id: string
@@ -35,6 +38,7 @@ export class Payment {
@JoinColumn({ name: "cart_id" })
cart: Cart
@Index()
@Column({ nullable: true })
order_id: string
@@ -58,6 +62,7 @@ export class Payment {
@Column({ type: "int", default: 0 })
amount_refunded: number
@Index()
@Column()
provider_id: string

View File

@@ -34,6 +34,7 @@ export class ProductOptionValue {
@JoinColumn({ name: "option_id" })
option: ProductOption
@Index()
@Column()
variant_id: string

View File

@@ -27,6 +27,7 @@ export class ProductVariant {
@Column()
title: string
@Index()
@Column()
product_id: string

View File

@@ -75,6 +75,7 @@ export class Product {
)
variants: ProductVariant[]
@Index()
@Column()
profile_id: string

View File

@@ -2,6 +2,7 @@ import {
Entity,
BeforeInsert,
Column,
Index,
CreateDateColumn,
UpdateDateColumn,
PrimaryColumn,
@@ -28,6 +29,7 @@ export class Refund {
@PrimaryColumn()
id: string
@Index()
@Column()
order_id: string

View File

@@ -1,5 +1,6 @@
import {
Entity,
Index,
RelationId,
BeforeInsert,
Column,
@@ -43,6 +44,7 @@ export class Return {
)
items: ReturnItem[]
@Index()
@Column({ nullable: true })
swap_id: string
@@ -53,6 +55,7 @@ export class Return {
@JoinColumn({ name: "swap_id" })
swap: Swap
@Index()
@Column({ nullable: true })
claim_order_id: string
@@ -63,6 +66,7 @@ export class Return {
@JoinColumn({ name: "claim_order_id" })
claim_order: ClaimOrder
@Index()
@Column({ nullable: true })
order_id: string

View File

@@ -2,6 +2,7 @@ import {
Entity,
BeforeInsert,
Column,
Index,
DeleteDateColumn,
CreateDateColumn,
UpdateDateColumn,
@@ -28,6 +29,7 @@ export class ShippingOptionRequirement {
@PrimaryColumn()
id: string
@Index()
@Column()
shipping_option_id: string

View File

@@ -1,6 +1,7 @@
import {
Entity,
Check,
Index,
BeforeInsert,
Column,
DeleteDateColumn,
@@ -36,6 +37,7 @@ export class ShippingOption {
@Column()
name: string
@Index()
@Column()
region_id: string
@@ -43,6 +45,7 @@ export class ShippingOption {
@JoinColumn({ name: "region_id" })
region: Region
@Index()
@Column()
profile_id: string
@@ -50,6 +53,7 @@ export class ShippingOption {
@JoinColumn({ name: "profile_id" })
profile: ShippingProfile
@Index()
@Column()
provider_id: string

View File

@@ -1,5 +1,6 @@
import {
Entity,
Index,
BeforeInsert,
Column,
DeleteDateColumn,
@@ -54,6 +55,7 @@ export class Swap {
@Column({ type: "enum", enum: PaymentStatus })
payment_status: PaymentStatus
@Index()
@Column({ type: "string" })
order_id: string