Нарушение ограничения целостности: 1048 Столбец не может быть нулевой ошибкой - PullRequest
1 голос
/ 09 августа 2010

Я получаю странную ошибку в Symfony 1.4 с доктриной 1.2. Мои схемы кажутся нормальными. Но всякий раз, когда я выполняю задачу doctrine:build --all --no-confirmation --and-load, она выдает ошибку SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'default_edition_id' cannot be null. Если бы я установил notnull в false для поля default_edition_id, оно на самом деле было бы просто нулевым. Может ли кто-нибудь помочь мне в том, что мне не хватает?

Вот мой файл схемы (chapter.yml):

Chapter:
  actAs:
    Timestampable: ~
    Versionable:
      versionColumn: version
      className: %CLASS%Version
    SoftDelete: ~
  columns:
    name: string
    chapter_number: { type: integer, notnull: true }
    series_id: { type: integer, notnull: true }
    default_edition_id: { type: integer, notnull: true }
    disabled:
      type: enum
      values: [1, 0]
      default: 0
      notnull: true
  relations:
    DefaultEdition:
      local: default_edition_id
      class: Edition
      foreign: id
      foreignAlias: DefaultChapter
      foreignType: one
      type: one
#      onDelete: CASCADE
    Series:
      local: series_id
      foreign: id
      onDelete: CASCADE
    Editions:
      type: many
      class: Edition
      local: id
      foreign: chapter_id

и моя схема издания (edition.yml):

Edition:
  actAs:
    Timestampable: ~
    Sluggable:
       fields: [name]
    Versionable:
      versionColumn: version
      className: %CLASS%Version
    SoftDelete: ~
  columns:
    name: string
    completed_reads: { type: integer, notnull: true, default: 0}
    views: { type: integer, notnull: true, default: 0 }
    language_id: { type: integer, notnull: true }
    chapter_id: { type: integer, notnull: true }
    disabled:
      type: enum
      values: [1, 0]
      default: 0
      notnull: true
  relations:
    Pages:
      type: many
      class: Page
      local: id
      foreign: edition_id
    Language:
      local: language_id
      foreign: id
      type: one
      onDelete: CASCADE
    Chapter:
      local: chapter_id
      foreign: id
      onDelete: CASCADE

Светильники:

Chapter:
  bakuman_chapter:
    Series: bakuman
    chapter_number: 86
    DefaultEdition: edition_1
  bakuman_chapter2:
    Series: bakuman
    DefaultEdition: edition_2
    chapter_number: 90

Edition:
  edition_1:
    name: edition 1
    Chapter: bakuman_chapter
    ScanlationGroup: [group_1, group_2, group_3]
    Language: english
  edition_2:
    name: edition 2
    Chapter: bakuman_chapter2
    ScanlationGroup: [group_4]
    Language: japanese
  edition_2_2:
    name: edition 2_2
    Chapter: bakuman_chapter2
    ScanlationGroup: [group_4, group_2]
    Language: english

1 Ответ

0 голосов
/ 09 августа 2010

"Если бы я установил notnull в false для поля default_edition_id, оно фактически будет просто нулевым". Было ли в этом предложении «это» относится? Notnull означает, что значение 'null' приемлемо для этого поля, а не то, что его значение всегда будет нулевым, если вы имели это в виду.

...