Здравствуйте! Помогите пожалуйста разобраться.
Есть база данных на Oracle c таблицей. В таблице хранятся множества данных. Необходимо создать модель данных на основе ранее упомянутой таблицы. Проблемы в следующем:
1. В данной таблице есть столбец
tab c типом
NUMBER
. При этом
precision
и
scale
пустые.
Команда
inspectdb
возвращает почему-то
tab = models.FloatField()
, хотя вроде как FloatField не создаст тип данных NUMBER в БД. Поэтому я остановился на следующем коде:
tab = models.IntegerField(
verbose_name='Вкладка',
choices=TAB_CHOICES,
default=0,
blank=True,
null=True
)
Данный код создает обычно тип данных NUMBER, но при этом с
precision=11, scale=0
.
Вопрос: не возникнет ли проблемы при миграции к существующей БД (таблицей) с текущим кодом или как установить пустые значения для precision и scale?
2. В таблице есть столбец title у которой тип данных CLOB. Я планирую использовать следующий код:
title = models.TextField(
verbose_name='Заголовок',
blank=True,
null=True
)
Обычно данный код создает в БД тип NCLOB. Хотя inspectdb для столбца title возвращает TextField тоже.
Вопрос: Возможно ли явно указать тип в Джанго? Не возникнет ли проблемы при интеграции?
Не совсем прозрачен весь механизм интеграции для меня. Нужно ли делать миграцию после того как настроил модель данных? Просто при попытки сделать миграцию вываливается ошибка:
django.db.utils.DatabaseError: ORA-00955: name is already used by an existing object
Возможно ошибка из-за того, что в
db_table
, который в Meta классе, стоит название таблицы.