【问题标题】:Django Mysql Migration Error 150 with FOREIGN KEY带有 FOREIGN KEY 的 Django Mysql 迁移错误 150
【发布时间】:2016-12-27 13:38:53
【问题描述】:

我需要帮助调试迁移。

我尝试逐步执行每个查询以找到 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    |                |
+-------------------+--------------+------+-----+---------+----------------+

TABLE 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    |                |
+------------------+--------------+------+-----+---------+----------------+

【问题讨论】:

    标签: mysql django foreign-keys foreign-key-relationship


    【解决方案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。这次没有错误。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2011-05-03
      • 2019-03-01
      • 1970-01-01
      相关资源
      最近更新 更多