Django Чар против Varchar - PullRequest
       25

Django Чар против Varchar

0 голосов
/ 23 марта 2020

Пожалуйста, помогите, у меня есть существующая база данных, которая использует char (12) в качестве своего PK.

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

Затем я создаю Django модель и создаю модель на основе inspectdb (потрясающий инструмент: -))

Проблема заключается в том, что я создайте другую таблицу с внешним ключом для этой таблицы, новая таблица будет использовать varchar (), а MySQL на уровне базы данных не будет учитывать отношения из-за различных типов (char vs .varchar). ПОМОГИТЕ!

Я пытаюсь: 1 - обновить существующую базу данных до Varchar (кажется, что это довольно экстремальная операция, чтобы заставить эту штуку работать: -0) 2 - получить класс внешнего ключа Django для распознавания типа правильно (я понимаю, агностицизм ORM et c). 2 - Принудительно Django создать поле типа char и затем добавить ограничение после в Django, хотя я не вижу, как этого можно достичь без поднятия тяжестей 3 - Не использовать Django

Help!

1 Ответ

0 голосов
/ 23 марта 2020

Muppet! - Оригинальный стол UTF8. Вторая таблица создавалась как latin1 CHARACTER SET: -0.

CHAR - VARCHAR может создавать отношения FK как на уровне БД, так и на уровне Django: -)

...