Найти - Пользователи
Полная версия: Поведение джанги при изменении модели
Начало » Django » Поведение джанги при изменении модели
1
regall
Здравствуйте, вот начал работать на джанге, и столкнулся с любопытным неудобством:
Когда есть модель и требуется в нее внести в нее изменение (рассмотрим пример добавления столбца в таблицу), то необходимо в шеле бд руцями это все дело прописать. Вот во мне проснулась ленивость (хочу это дело обойти) и несколько вопросов :
1. Всех ли это устраивает (если да, то этот вопрос последний, если нет, то как кто решал эту задачку) ?
2. Вот подумал может добавить при старте сервера затычку типа ModelChecker (будет проверять соответствие модели и структуры таблиц в БД и делать соответствующий ALTER TABLE) ?
3. Или может чуть расширить сам models.Model чтобы класс при инициализации делал проверку и соответствующие изменения (не очень мне такой подход нравится но все же.)

P.S. С Джангой работаю второй день (после 2-х годового опыта работы на Zope3 немного непривычно, вижу кучу минусов, и совсем немного плюсов) так что сильно не пинайте, и если что-то в вопросах глупое - сразу поправьте. Спасибо.
Александр Кошелев
http://www.google.ru/search?q=django+schema+migration
regall
Daevaorn, спасибо за подсказку, почитал, как я и ожидал, однозначного решения нет, и даже тот мощный South не предоставляет средств для решений 100% случаев миграций… Буду развиваться в этом направлении дальше, может чего изобрету+найду, в результате - поделюсь, еще раз спасибо.
Александр Кошелев
regall
и даже тот мощный South не предоставляет средств для решений 100% случаев миграций…
Их и не может быть. Просто по тому что Джанга позволяет работать с любой БД и в каждой из них могут быть свои особенности миграции схемы, а где-то и схемы нет вовсе.
regall
lorien
* на sqlite не работают команды по изменению колонок т.к. sqlite не поддерживает alter table насколько я понял
Не совсем верно. SQLite поддерживает ограниченный вариант ALTER TABLE. Комманда ALTER TABLE в SQLite позволяет переименовывать таблицу или добавлять новую колонку, но невозможно переименовывать (как в вашем случае) удалять и добавлять колонки в таблицы.
lorien
* если добавить db_index в колонку, то south не создат индекс o_O
Ну, насколько я понял проект живой и активно развивается, все еще впереди, все-таки следует учитывать, что фреймворк молодой, и соответственно app-ы под него, так сказать, пока еще не “mature”. Будем надеется на светлое будущее.

P. S. lorien, спасибо за ответ/совет, учту, если буду использовать эту утилитку.
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