Найти - Пользователи
Полная версия: как обновлять БД с новыми/отредактированными полями в models.py
Начало » Django » как обновлять БД с новыми/отредактированными полями в models.py
1
buddha
Сталкиваюсь уже не первый раз. Добавляю или изменяю поля в models.py, но в БД нету никаких изменений. Думаю многим это знакомо. Вручную пишу простецкие запросы в sqlite3 для достижения результата.
Вот пример из оф. документации.В models.py имеем сначала:
from django.db import models
class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

Вызываем команду syncdb. Далее в models.py добавляем :
YEAR_IN_SCHOOL_CHOICES = (
        (u'FR', u'Freshman'),
        (u'SO', u'Sophomore'),
        (u'JR', u'Junior'),
        (u'SR', u'Senior'),
        (u'GR', u'Graduate'),)
    rank=models.CharField(max_length=30, choices=YEAR_IN_SCHOOL_CHOICES)
Поле rank в БД не создаётся(нюанс ведь очень значимый).
Кто как в этой ситуации поступает, подскажите ?
Imposeren
Вам нужны “Миграции”. У меня в конторе пользуются South:
http://south.aeracode.org/docs/tutorial/part1.html
buddha
Про такой вариант вкурсе, пока не касался. А использовать читстые SQL-запросы некорректно, как по вашему? В чем плюсы/минусы?
По мне так, чем нагромождать себя другим приложением, лучше получше узнать синтаксис SQL
Dr.Livsi
buddha
По мне так, чем нагромождать себя другим приложением, лучше получше узнать синтаксис SQL
хозяин - барин. Я, лично, прекрасно изучил синтаксис sql используемого мною сервера баз данных (postgresql). Но реально гораздо продуктивнее использовать south. Нагромождения здесь нет. Все очень просто и, главное, быстро.
dehun
я пробывал у себя для тестовой апликухи( django-evolution). впринципе понравилось. но есть опасения по теме как оно себя поведёт на продакшане
Imposeren
Ну до апреля django-evolution уже полгода как без признаков жизни был, и чем-то он не нравился моей конторе. Сам не пробовал.

Основной плюс использования сторонних приложений перед чистым SQL: легче работа в команде
buddha
спасибо за мнения
FishHook
Imposeren
Основной плюс использования сторонних приложений перед чистым SQL: легче работа в команде
ORM Джанги гарантирует единообразный синтаксис для любой поддерживаемой СУБД.
Скажем, при отладке юзаем sqlite, на продакшене - мускуль, есть желание скоро пересесть на постресс или оракл, код от этого не изменится и это большой плюс. ИМХО: raw-SQL в Джанге есть зло, встроенный ORM вполне обеспечивает комфортную работу.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB