Главная > Frameworks | MySQL | PHP | Symfony | Базы данных > Symfony: SQLSTATE[HY000]: General error: 1005 Can't create table (errno: 150)

Symfony: SQLSTATE[HY000]: General error: 1005 Can't create table (errno: 150)

08.10.2015 0 коммент. » Просмотры: 1 778

Symfony

Ночью не спалось, поэтому решил дописать некоторый функционал в новой версии этого блога. Блог пишу на Symfony, в качестве ORM использую Doctrine. Так вот, столкнулся с ошибкой SQLSTATE[HY000]: General error: 1005 Can't create table 'itrem.#sql-2f3f_2a7' (errno: 150) при обновлении схемы БД..

Полностью ошибка выглядит так:

[Doctrine\DBAL\DBALException]
An exception occurred while executing 'ALTER TABLE tags ADD CONSTRAINT FK_6FBC94264B89032C FOREIGN KEY (post_id) REFERENCES posts (id)':
SQLSTATE[HY000]: General error: 1005 Can't create table 'itrem.#sql-2f3f_2a7' (errno: 150)

[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table 'itrem.#sql-2f3f_2a7' (errno: 150)

Обычно такая ошибка возникает, когда foreign key и referenced key не совпадают по типу, но в моем случае был обычный маппинг с primary полем, и там все было Ок:

Проблему я нашел методом "тыка", при изучении таблиц, я заметил что таблица tags создалась в InnoDB, при этом таблица post была в MyISAM (наследие миграции с windows на linux). Так вот, изменив тип таблицы tags на MyISAM все заработало, апдейт базы сразу же прошел:

Так что, когда будете искать где зарылась проблема, обратите внимание на тип таблиц. Возможно, это так же Ваш случай.

Автор: | Рейтинг: 4/5 | Теги: , ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>