Symfony sfDoctrineGuard insert-sql error 1005 - PullRequest
       27

Symfony sfDoctrineGuard insert-sql error 1005

0 голосов
/ 27 сентября 2011

У меня свежая версия Symfony 1.4 с Doctrine ORM.

Я ищу установить плагин sfDoctrineGuard.Я следовал инструкциям здесь: http://www.symfony -project.org / plugins / sfDoctrineGuardPlugin

все прекрасно работает до этого шага: доктрина Symfony: insert-sql

, когда яполучить сообщение об ошибке:

SQLSTATE [HY000]: общая ошибка: 1005 Невозможно создать кикбоксинг таблицы. # sql-2b5b_a8f '(ошибка 150) Запрос «ALTER TABLE» ДОБАВИТЬ КОНСТРАИНТ(sf_guard_user_id) ССЫЛКИ sf_guard_user (id)

Создается впечатление, что были созданы несколько таблиц:

profile sf_guard_forgot_password sf_guard_group sf_guard_group_permission sf_ard_guard_serguard_serguard1020 *

ОБНОВЛЕНИЕ: я обнаружил, что это действительно не имеет ничего общего с doctrine / symfony. Проблема, похоже, связана с mysql, я выполнил команду alter выше в MySQL и, конечно, получаю ту же ошибку.

Для справки, у меня установлен Debian Squeeze и mysql5.

ОБНОВЛЕНИЕ2: когда я запускаю

SHOW INNODB STATUS;

я получаю


ПОСЛЕДНЯЯ ОШИБКА ИНОСТРАННОГО КЛЮЧА

110927 7:58: 35 Ошибка в ограничении внешнего ключа таблицы _kickboxing / # sql-2b5b_a86: FOREIGN KEY (sf_guard_user_id) REFERENCES sf_guard_user (id): не удается найти индекс в ссылочной таблице, где указанные столбцы отображаются как первые столбцы, или типы столбцов вТаблица и ссылочная таблица не соответствуют ограничениям.Обратите внимание, что тип внутренней памяти ENUM и SET изменился в таблицах, созданных с помощью> = InnoDB-4.1.12, и на такие столбцы в старых таблицах нельзя ссылаться такими столбцами в новых таблицах.См. http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html для правильного определения внешнего ключа.

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Похоже, проблема mySql.Вы можете получить полное (лучшее) описание ошибки, войдя в консоль mysql и запустив

show innodb status

, а затем найдите ПОСЛЕДНЮЮ ОШИБКУ ИНОСТРАННЫХ КЛЮЧЕЙ, чтобы получить представление о том, что произошлонеправильно

0 голосов
/ 18 января 2012

Я использую Symfony 1.4.16 и для настройки sfDoctrineGuardPlugin я следовал prettyscripts.com , но schema.yml должен выглядеть следующим образом;

Примечание: user_id - целое число (8), то есть размер столбца идентификатора sf_guard.

sfGuardUserProfile:
  tableName: sf_guard_user_profile
  actAs:        { Timestampable: ~ }
  options:      { collate: utf8_unicode_ci, charset: utf8 }
  columns:
    id:         { type: integer(8), primary: true, autoincrement: true }
    user_id:    { type: integer(8), notnull: true }
    fullname:   { type: string(80) }
    email:      { type: string(100) }
  relations:
    User:
      class: sfGuardUser
      foreign: id
      local: user_id
      type: one
      onDelete: cascade
      foreignType: one
      foreignAlias: Profile
...