Как Django обрабатывает изменения в моей модели?Или какая помощь мне предлагает это сделать?
Я думаю о ситуации, когда у меня уже есть опубликованные данные в моей БД, которые я не хочу потерять, но мне нужно внести изменения вмоя модель данных - например, добавление дополнительных полей к определенному классу, изменение типов полей и т. д. Насколько я понимаю, syncdb никогда не будет изменять таблицы, которые уже существуют в БД.
Например,скажем, у меня есть следующая модель:
class Person(models.Model):
name = models.CharField(max_length=200)
phone_number=models.CharField(max_length=200)
hair_colour=CharField(max_length=50)
Вещи, которые я мог бы сделать, чтобы Person от макушки головы:
- Я хочу добавить поле 'age'.
- Я понимаю, что хочу использовать
IntegerField
вместо CharField
для phone_number
(является ли это хорошей идеей или нет, выходит за рамки ...) - предполагая, что это возможно. - Я понимаю, что больше не хочу определять
hair_colour
'inline' в Person, потому что несколько человек имеют один и тот же цвет волос - вместо этого я хочу изменить его, чтобы он стал внешним ключом для какой-либо другой модели.
Хотя я могу представить, что некоторые из нихgh / невозможно для фреймворка «угадать», что именно нужно сделать с моими данными, если все, что я делаю, - это обновляю models.py, я могу представить, что еще может быть какой-то инструментарий, помогающий включить его - существует ли он?
В частности, я полагаю, что для варианта 1 должно быть несколько хороших шаблонов.
Я очень плохо знаком с Django и не имею опыта работы с другими вещами типа ORM, которые, я думаю, это -Я всегда с подозрением относился к ORM, в основном по вышеуказанным причинам:)