2010-12-06 1 views
1

У меня есть сервер Ubuntu с установленными Nginx и Django 1.1. На локальном сайте разработчика у него было 1.2, и у него есть некоторые функции (умные, если), которые сейчас ломаются на моем dev-сервере. Мне нужно обновить до 1.2.Обновление Django от 1.1 до 1.2

Это мой первый правильный проект django/python, в который я вовлечен, поэтому я чувствую себя в этом. Я хочу сделать обновление. Существует множество дополнительных пакетов, которые используются в приложении, например. юг, разбивка на страницы, регистрация и т. д.

/var/www/env/example.com/lib/python2.6/site-packages 

Я не был тем, кто его первоначально установил. это то, что я вижу в этой папке.

/var/www/env/example.com/lib/python2.6/site-packages$ ls 
Crypto        django        pycrypto-2.0.1-py2.6.egg-info 
Django-1.1.1-py2.6.egg-info   django-avatar.egg-link      registration 
Fabric-0.9.0-py2.6.egg-info   django_avatar-1.0.5-py2.6.egg-info   setuptools-0.6c9-py2.6.egg 
MySQL_python-1.2.3c1-py2.6.egg-info django_countries       setuptools.pth 
MySQLdb        django_countries-1.0.4-py2.6.egg-info  simplejson 
PIL         django_debug_toolbar-0.8.3-py2.6.egg-info simplejson-2.1.1-py2.6.egg-info 
PIL.pth        django_pagination-1.0.7-py2.6.egg-info  south 
South-0.7.2-py2.6.egg-info   django_registration-0.7-py2.6.egg-info  stdimage 
_mysql.so       easy-install.pth       virtualenvwrapper 
_mysql_exceptions.py     example         virtualenvwrapper-1.25-py2.6.egg-info 
_mysql_exceptions.pyc    fabric          yolk 
avatar        pagination         yolk- 0.4.1-py2.6.egg-info 
debug_toolbar      paramiko 

Теперь в документах упоминается что-то о том, установлено ли с использованием яйца, существует ли другой процесс обновления, если он установлен вручную?

Я вижу упоминание о файлах с яйцами здесь, так как я могу перейти к обновлению Django 1.1 до 1.2.

Virtualenv

Мы используем virtualenv создать "контейнер" для сайта. то есть мы можем использовать отдельный набор модулей, чем использует система.

В местных Docs это упоминается

Мы используем пип для установки модулей:

Это должно выполняться за пределами virtualenv (то есть, когда мы не имеем example.com в строке)

$ pip -E /var/www/env/example.com install <modulename> 

Могу ли я использовать протокол для безопасного обновления Django или что это лучший способ обновления?

$yolk -l 
Django   - 1.1.1  - active 
Fabric   - 0.9.0  - active 
MySQL-python - 1.2.3c1  - active 
PIL    - 1.1.7  - active 
Python   - 2.6.4rc2  - active development (/usr/lib/python2.6/lib-dynload) 
South   - 0.7.2  - active 
django-avatar - 1.0.5  - non-active 
django-avatar - 1.1a5  - active development (/var/www/env/example.com/src/avatar) 
django-countries - 1.0.4  - active 
django-debug-toolbar - 0.8.3  - active 
django-pagination - 1.0.7  - active 
django-registration - 0.7   - active 
pycrypto  - 2.0.1  - active 
setuptools  - 0.6c9  - active 
simplejson  - 2.1.1  - active 
virtualenvwrapper - 1.25   - active 
wsgiref   - 0.1.2  - active development (/usr/lib/python2.6) 
yolk   - 0.4.1  - active 

ответ

3

pip -E /var/www/env/example.com install --upgrade django будет работать должным образом и модернизировать установку Джанго, однако вы можете прочитать примечания к выпуску для Джанго 1.2 и быть в курсе каких-либо назад несовместимых изменений, которые могут нарушить ваш код. Кроме того, вы можете сделать это на сервере dev сначала и выполнить все тесты, которые у вас могут быть до развертывания, поскольку любой код, который у вас есть, зависит от внутреннего api или реализации, может стать недействительным.

Я не пытаюсь отпугнуть вас, совсем наоборот: 1.2 - отличный релиз! Просто не забудьте следовать стандартной процедуре тестирования, прежде чем вкладывать что-нибудь в производство;)

+0

Я полностью понимаю и это dev-сервер. Спасибо. – 2010-12-07 02:39:11