首页 > 解决方案 > Django Char 与 Varchar

问题描述

请帮助,我有一个使用 char(12) 作为其 PK 的现有数据库。

CREATE TABLE sop_customer( customer_idchar(12) NOT NULL, PRIMARY KEY ( customer_id), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后我创建一个 Django 模型并基于 inspectdb 创建一个模型(很棒的工具:-))

问题是当我使用该表的外键创建另一个表时,新表将使用 varchar() 并且由于类型不同(char 与 .varchar),数据库级别的 MySQL 将不遵守关系!帮助!

我正在尝试: 1 - 将现有数据库更新为 Varchar (似乎是一个相当极端的操作只是为了让这个东西工作:-0) 2 - 获取 Django 的外键类以正确识别类型(我了解 ORM不可知论等)。2 - 强制 Django 创建一个 char 字段,然后在 Django 中添加约束,虽然我看不出如何在没有繁重的情况下实现 3 - 不使用 Django

帮助!

标签: mysqldjangocharforeign-keysvarchar

解决方案


布偶!- 原始表是UTF8。第二个表被创建为 latin1 CHARACTER SET :-0。

CHAR - VARCHAR 可以在 DB 级别和 Django 级别创建 FK 关系:-)


推荐阅读