Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Introspection] "The model 'x' cannot be defined because a model with that name already exists." #1504

Closed
janpio opened this issue Feb 1, 2020 · 5 comments
Assignees
Labels
bug/2-confirmed Bug has been reproduced and confirmed. kind/bug A reported bug. topic: introspection
Milestone

Comments

@janpio
Copy link
Member

janpio commented Feb 1, 2020

Error message:

error: The model 'CampaignDraft' cannot be defined because a model with that name already exists.   -->  schema.prisma:1895

Schema:

https://github.com/prisma/introspection-engine-output/blob/8e75a5342e388bc4b7eb8220976af011484422aa/prisma1-old/email-jesper-madsen%40dev.log#L207-L261

model CampaignDraft {
  audienceType                              String?
  autoApproveInfluencerOrdersInTargetGroup  Boolean?
  captionSpecifics                          String?
  createdAt                                 DateTime
  defaultCaption                            String?
  description                               String?
  endDate                                   DateTime?
  giftDescription                           String?
  id                                        String                                     @id
  isGlobal                                  Boolean
  maximumAge                                Int?
  minimumAge                                Int?
  minimumInstagramFollowers                 Int?
  numberOfPostsPerInfluencer                Int?
  postIntervalEnd                           DateTime?
  postIntervalStart                         DateTime?
  radiusInMeters                            Int?
  showInSubmissionAppFeed                   Boolean?
  startDate                                 DateTime?
  subtitle                                  String?
  targetNumberOfInfluencers                 Int?
  title                                     String?
  updatedAt                                 DateTime
  version                                   Int
  visibleBeforeStartDate                    Boolean?
  weight                                    Float?
  campaignDraft_defaultAccountTagses        CampaignDraft_defaultAccountTags[]         @relation(references: [nodeId])
  campaignDraft_defaultHashtagses           CampaignDraft_defaultHashtags[]            @relation(references: [nodeId])
  campaignDraft_dontses                     CampaignDraft_donts[]                      @relation(references: [nodeId])
  campaignDraft_doses                       CampaignDraft_dos[]                        @relation(references: [nodeId])
  campaignDraft_genderses                   CampaignDraft_genders[]                    @relation(references: [nodeId])
  campaignDraft_postMedias                  CampaignDraft_postMedia[]                  @relation(references: [nodeId])
  campaignDraft_postReminderDateses         CampaignDraft_postReminderDates[]          @relation(references: [nodeId])
  campaignDraft_requiredDisclaimerses       CampaignDraft_requiredDisclaimers[]        @relation(references: [nodeId])
  CampaignDraftAudienceInterests            CampaignDraftAudienceInterest[]            @map("_CampaignDraftAudienceInterests") @relation("CampaignDraftTo_CampaignDraftAudienceInterest", references: [A])
  CampaignDraftAuthors                      CampaignDraftAuthor[]                      @map("_CampaignDraftAuthors") @relation("CampaignDraftTo_CampaignDraftAuthor", references: [A])
  CampaignDraftCampaignAddresses            CampaignDraftCampaignAddress[]             @map("_CampaignDraftCampaignAddresses") @relation("CampaignDraftTo_CampaignDraftCampaignAddress", references: [B])
  CampaignDraftCampaignObjectives           CampaignDraftCampaignObjective[]           @map("_CampaignDraftCampaignObjectives") @relation("CampaignDraftTo_CampaignDraftCampaignObjective", references: [A])
  CampaignDraftCompanies                    CampaignDraftCompany[]                     @map("_CampaignDraftCompanies") @relation("CampaignDraftTo_CampaignDraftCompany", references: [A])
  CampaignDraftCompanyLogoes                CampaignDraftCompanyLogo[]                 @map("_CampaignDraftCompanyLogoes") @relation("CampaignDraftTo_CampaignDraftCompanyLogo", references: [A])
  CampaignDraftCompanyRepulsions            CampaignDraftCompanyRepulsion[]            @map("_CampaignDraftCompanyRepulsions") @relation("CampaignDraftTo_CampaignDraftCompanyRepulsion", references: [A])
  CampaignDraftCoverImages                  CampaignDraftCoverImage[]                  @map("_CampaignDraftCoverImages") @relation("CampaignDraftTo_CampaignDraftCoverImage", references: [A])
  CampaignDraftExternalLinkses              CampaignDraftExternalLinks[]               @map("_CampaignDraftExternalLinkses") @relation("CampaignDraftTo_CampaignDraftExternalLinks", references: [A])
  CampaignDraftInterestRatingCampaignDrafts CampaignDraftInterestRatingCampaignDraft[] @map("_CampaignDraftInterestRatingCampaignDrafts") @relation("CampaignDraftTo_CampaignDraftInterestRatingCampaignDraft", references: [A])
  CampaignDraftInterestRepulsions           CampaignDraftInterestRepulsion[]           @map("_CampaignDraftInterestRepulsions") @relation("CampaignDraftTo_CampaignDraftInterestRepulsion", references: [A])
  CampaignDraftMetaRelations                CampaignDraftMetaRelation[]                @map("_CampaignDraftMetaRelations") @relation("CampaignDraftTo_CampaignDraftMetaRelation", references: [A])
  CampaignDraftPrimaryInterests             CampaignDraftPrimaryInterest[]             @map("_CampaignDraftPrimaryInterests") @relation("CampaignDraftTo_CampaignDraftPrimaryInterest", references: [A])
  CampaignDraftProductFeedbacks             CampaignDraftProductFeedback[]             @map("_CampaignDraftProductFeedbacks") @relation("CampaignDraftTo_CampaignDraftProductFeedback", references: [A])
  CampaignDraftSelectedInfluencers          CampaignDraftSelectedInfluencer[]          @map("_CampaignDraftSelectedInfluencers") @relation("CampaignDraftTo_CampaignDraftSelectedInfluencer", references: [A])
  CampaignDraftSubmissionPrices             CampaignDraftSubmissionPrice[]             @map("_CampaignDraftSubmissionPrices") @relation("CampaignDraftTo_CampaignDraftSubmissionPrice", references: [A])
  CampaignDraftSubmissionRewards            CampaignDraftSubmissionReward[]            @map("_CampaignDraftSubmissionRewards") @relation("CampaignDraftTo_CampaignDraftSubmissionReward", references: [A])
  InspirationImageOnCampaignDrafts          InspirationImageOnCampaignDraft[]          @map("_InspirationImageOnCampaignDrafts") @relation("CampaignDraftTo_InspirationImageOnCampaignDraft", references: [A])
  WatermarkImageOnCampaignDrafts            WatermarkImageOnCampaignDraft[]            @map("_WatermarkImageOnCampaignDrafts") @relation("CampaignDraftTo_WatermarkImageOnCampaignDraft", references: [A])
}

https://github.com/prisma/introspection-engine-output/blob/8e75a5342e388bc4b7eb8220976af011484422aa/prisma1-old/email-jesper-madsen%40dev.log#L1898-L1906

model CampaignDraft {
  id String            @id
  A  Campaign          @relation("CampaignTo_CampaignDraft")
  B  CampaignDraftMeta @relation("CampaignDraftMetaTo_CampaignDraft")

  @@index([B], name: "B")
  @@map("_CampaignDraft")
  @@unique([A, B], name: "CampaignDraft_AB_unique")
}

Original tables are called _CampaignDraft and CampaignDraft. THe former one needs to be renamed because starting with _ is not allowed, so @@map("_CampaignDraft") rewrites that. That code does not seem to take into account that it could create duplicates - so we need some logic to check and work around that.

@janpio janpio added bug/0-unknown Bug is new, does not have information for reproduction or reproduction could not be confirmed. kind/bug A reported bug. topic: introspection labels Feb 1, 2020
@janpio janpio added this to the Preview 22 milestone Feb 1, 2020
@janpio
Copy link
Member Author

janpio commented Feb 4, 2020

Needs decision: How to disambiguate these? How to name the second one?

@janpio janpio added bug/2-confirmed Bug has been reproduced and confirmed. and removed bug/0-unknown Bug is new, does not have information for reproduction or reproduction could not be confirmed. labels Feb 4, 2020
@sorenbs
Copy link
Member

sorenbs commented Feb 4, 2020

DECISION: comment out the model

@janpio
Copy link
Member Author

janpio commented Feb 4, 2020

Parent decision: #1520 (comment)

@do4gr
Copy link
Member

do4gr commented Feb 27, 2020

More context, this happens on Prisma 1 self relations. The table holding the relation has the name _Model.

@janpio
Copy link
Member Author

janpio commented Mar 19, 2020

This is solved 🚀

@janpio janpio closed this as completed Mar 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/2-confirmed Bug has been reproduced and confirmed. kind/bug A reported bug. topic: introspection
Projects
None yet
Development

No branches or pull requests

4 participants