升级以南一个Django和MySQL应用时我有一个问题。

我试图使与由django的sqlall命令生成的代码中的基于SQL的升级和我有类似的问题。

下面是sql代码:

CREATE TABLE `programmations_basissupport` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `value` numeric(6, 0) NOT NULL
)

ALTER TABLE `programmations_concert` ADD `basis_support_id` integer AFTER program_status_id;

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

这是引发错误添加FK约束时:

ERROR 1005 (HY000): Can't create table 'apidev_mnl.#sql-106e_632b00a' (errno: 150)

任何人是否有一个想法?

更新:默认值,其中失踪,但即使我在Django的模型添加默认=“”,外键的创建失败

感谢您的帮助。

有帮助吗?

解决方案 3

我最后固定了由于一种解决方法的问题。我的开发机器上的ALTER工程确定,而它无法在主机上。我没有找到的原因,但我成功,使其通过出口工作,迁移我的开发机器上,并重新导入。

其他提示

像你看起来是尝试添加约束带符号/名称已经存在。

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

可以更改为:

ALTER TABLE `programmations_concert` ADD FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

有同样的问题。 最后我发现,在引用表的字段是“无符号”,但在引用表 - 不签名

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top