首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有外键的Django Mysql迁移错误150

问带有外键的Django Mysql迁移错误150
EN

Stack Overflow用户
提问于 2016-08-20 22:27:59
回答 1查看 71关注 0票数 1

我需要帮助调试迁移。

我尝试一步一步地执行每个查询,以找出django迁移停止的位置。

此查询失败:

代码语言:javascript
复制
mysql> ALTER TABLE `elezioniAgendaCore_comments` ADD CONSTRAINT `elezioniAgendaCore_comments_uid_id_670175fa07fa7b47_fk_user_uid` FOREIGN KEY (`uid_id`) REFERENCES `user` (`uid`);

有错误:

代码语言:javascript
复制
ERROR 1005 (HY000): Can't create table 'activedoc.#sql-3f7_2b' (errno: 150)

我有两张桌子。

表用户:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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    |                |
+------------------+--------------+------+-----+---------+----------------+
EN

回答 1

Stack Overflow用户

发布于 2016-08-20 23:10:27

我发现有一个表是用MyISAM引擎创建的:

代码语言:javascript
复制
SHOW CREATE TABLE user;

..。

代码语言:javascript
复制
) ENGINE=MyISAM AUTO_INCREMENT=307 DEFAULT CHARSET=latin1 |

另一张表:

代码语言:javascript
复制
mysql> SHOW CREATE TABLE elezioniAgendaCore_comments;

..。

代码语言:javascript
复制
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

然后,我将两个表都迁移到InnoDB。这次没有错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39055201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档