Ошибка миграции Django Mysql 150 с FOREIGN KEY

mysql django foreign-keys foreign-key-relationship

66 просмотра

1 ответ

Мне нужна помощь в отладке миграции.

Я попытался выполнить каждый запрос шаг за шагом, чтобы найти, где остановка миграции django.

Этот запрос не выполняется:

mysql> ALTER TABLE `elezioniAgendaCore_comments` ADD CONSTRAINT `elezioniAgendaCore_comments_uid_id_670175fa07fa7b47_fk_user_uid` FOREIGN KEY (`uid_id`) REFERENCES `user` (`uid`);

С ошибкой:

ERROR 1005 (HY000): Can't create table 'activedoc.#sql-3f7_2b' (errno: 150)

У меня есть буксирные столы.

ТАБЛИЦА пользователь:

mysql> show columns from user;
+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| uid               | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name              | varchar(50)  | YES  | MUL | NULL    |                |
| surname           | varchar(50)  | YES  | MUL | NULL    |                |
| email             | varchar(100) | YES  | MUL | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+

ТАБЛИЦА elezioniAgendaComments:

mysql> show columns from elezioniAgendaCore_comments;
+------------------+--------------+------+-----+---------+----------------+
| Field            | Type         | Null | Key | Default | Extra          |
+------------------+--------------+------+-----+---------+----------------+
| id               | int(11)      | NO   | PRI | NULL    | auto_increment |
| signature        | varchar(255) | NO   |     | NULL    |                |
| message          | longtext     | NO   |     | NULL    |                |
| created          | datetime     | NO   |     | NULL    |                |
| published        | tinyint(1)   | NO   |     | NULL    |                |
| adempimento_id   | int(11)      | NO   | MUL | NULL    |                |
| parentComment_id | int(11)      | YES  | MUL | NULL    |                |
| uid_id           | bigint(20)   | NO   |     | NULL    |                |
+------------------+--------------+------+-----+---------+----------------+
Автор: Admdebian Источник Размещён: 08.11.2019 11:25

Ответы (1)


1 плюс

Я обнаружил, что одна таблица была создана с помощью движка MyISAM:

SHOW CREATE TABLE user;

[...]

) ENGINE=MyISAM AUTO_INCREMENT=307 DEFAULT CHARSET=latin1 |

Другая таблица:

mysql> SHOW CREATE TABLE elezioniAgendaCore_comments;

[...]

) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

Затем я перенес в InnoDB обе таблицы. На этот раз ошибок нет.

Автор: Admdebian Размещён: 20.08.2016 03:10
Вопросы из категории :
32x32