Risoluzione dei problemi “colonna chiave non esiste nella tabella” quando si costruisce da schema.yml

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

  •  11-09-2019
  •  | 
  •  

Domanda

Ho il seguente file schema.yml:

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

Ma, quando eseguo il comando build-all-reload, viene visualizzato il seguente messaggio di errore:

  

SQLSTATE [42000]: Errore di sintassi o violazione di accesso: 1072 colonna Chiave 'sottopagina' non esiste nella tabella

Sto cercando di implementare una classe di auto-relazione.

È stato utile?

Soluzione

Credo che si desidera avere quello che hai elencato:

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

ma è necessario una colonna id (stranieri: id) per la chiave primaria della tabella di pagina e una colonna chiamata 'sottopagina', che contiene il riferimento (locale: sottopagina) per il bambino. Così si può avere pagina con id = "100" che contiene un campo chiamato sottopagina che contiene un id = "200" e che "200" è la chiave effettiva (id) di una pagina diversa.

UPDATE: Dal commento di modificare file di schema originale:

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

Si prega di notare che io sto facendo alcuni gravi ipotesi sullo schema tra cui:

  • desideri id come chiave primaria e che si prenderà cura di se è stato impostato (si consiglia autoincrement: true nello schema).
  • sottopagina è facoltativo come una relazione figlio
  • SECTION_ID non è la vostra chiave primaria
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top