diff --git a/prisma/migrations/20250906115030_added_symbol_profile_relation_to_market_data/migration.sql b/prisma/migrations/20250906115030_added_symbol_profile_relation_to_market_data/migration.sql new file mode 100644 index 000000000..dea94981d --- /dev/null +++ b/prisma/migrations/20250906115030_added_symbol_profile_relation_to_market_data/migration.sql @@ -0,0 +1,8 @@ +-- AlterTable +ALTER TABLE "public"."MarketData" ADD COLUMN "symbolProfileId" TEXT; + +-- CreateIndex +CREATE INDEX "MarketData_symbolProfileId_idx" ON "public"."MarketData"("symbolProfileId"); + +-- AddForeignKey +ALTER TABLE "public"."MarketData" ADD CONSTRAINT "MarketData_symbolProfileId_fkey" FOREIGN KEY ("symbolProfileId") REFERENCES "public"."SymbolProfile"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 609bede5c..895cf0ad8 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -102,13 +102,15 @@ model AuthDevice { } model MarketData { - createdAt DateTime @default(now()) - dataSource DataSource - date DateTime - id String @id @default(uuid()) - marketPrice Float - state MarketDataState @default(CLOSE) - symbol String + createdAt DateTime @default(now()) + dataSource DataSource + date DateTime + id String @id @default(uuid()) + marketPrice Float + state MarketDataState @default(CLOSE) + symbol String + SymbolProfile SymbolProfile? @relation(fields: [symbolProfileId], onDelete: Cascade, references: [id]) + symbolProfileId String? @@unique([dataSource, date, symbol]) @@index([dataSource]) @@ -117,6 +119,7 @@ model MarketData { @@index([marketPrice]) @@index([state]) @@index([symbol]) + @@index([symbolProfileId]) } model Order { @@ -184,6 +187,7 @@ model SymbolProfile { id String @id @default(uuid()) isActive Boolean @default(true) isin String? + marketData MarketData[] name String? updatedAt DateTime @updatedAt scraperConfiguration Json?