Fehlerbehebung „Schlüsselspalte existieren nicht in der Tabelle“ beim Bau von schema.yml

StackOverflow https://stackoverflow.com/questions/1828210

  •  11-09-2019
  •  | 
  •  

Frage

Ich habe folgende schema.yml-Datei:

Page:
  actAs:
    I18n:
      fields: [name,html,urlShortDesc]
  columns:
    name: string
    gender: 
      type: enum
      values: [html, photoGallery]
      default: html
    html: string
    urlShortDesc: string
    section_id: 
      type: integer
      notnull: true
  relations:
    Section: 
      foreignAlias: Pages
    SubPage:
      class: Page
      local: subpage
      foreign: id
      type: one

Aber, wenn ich den build-all-reload Befehl ausführen, wird die folgende Fehlermeldung angezeigt:

  

SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1072 Key Spalt 'Unterseite' nicht in der Tabelle vorhanden

Ich versuche, eine Selbstbeziehung Klasse zu implementieren.

War es hilfreich?

Lösung

Ich glaube, Sie haben wollen, was Sie haben, aufgelistet:

SubPage:
  class: Page
  local: subpage
  foreign: id
  type: one

, aber Sie müssen eine ID-Spalte (foreign: id) für den Primärschlüssel der Seitentabelle und eine Spalte ‚Unterseite‘ genannt, die den Verweis enthält (local: Unterseite) für das Kind. Sie können also auf Seite haben mit id = „100“ ein Feld namens Unterseite enthält, die eine ID enthält = „200“ und „200“ ist der eigentliche Schlüssel (id) von einer anderen Seite.

UPDATE: Von Kommentar ursprüngliche Schemadatei zu ändern:

Page:
  actAs:
    I18n:
      fields: [name,html,urlShortDesc]
  columns:
    name: string
    gender: 
      type: enum
      values: [html, photoGallery]
      default: html
    html: string
    urlShortDesc: string
    section_id: 
      type: integer
      notnull: true
    id: 
      type: integer
      notnull: true
    subpage: 
      type: integer
      notnull: false
  relations:
    Section: 
      foreignAlias: Pages
    SubPage:
      class: Page
      local: subpage
      foreign: id
      type: one

Bitte beachten Sie, dass ich einige ernste Annahmen auf Ihrem Schema mache einschließlich:

  • Sie id als Primärschlüssel und dass Sie darauf achten, wird es eingestellt wird (Sie können autoincrement wollen: true im Schema).
  • Unterseite ist optional als Kind-Beziehung
  • SECTION_ID ist nicht Ihre Primärschlüssel
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top