diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-14 16:55:22 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-14 16:55:22 +0200 | 
| commit | ea65e5512c236b81e7f4b8757521facadae4b3b8 (patch) | |
| tree | 739cdf40fb6a89de90c4189936d695288a82849f /docs/_build/html/_sources/upgrade.txt | |
| parent | 4b0f0777c434f5fa1366ca408c34d257d4833fad (diff) | |
| parent | a55f77a246f99764ff6289686f80825526654e2b (diff) | |
| download | Chimère-ea65e5512c236b81e7f4b8757521facadae4b3b8.tar.bz2 Chimère-ea65e5512c236b81e7f4b8757521facadae4b3b8.zip | |
Merge branch 'master' into saclay
Conflicts:
	chimere/admin.py
	chimere/fixtures/initial_data.json
	chimere/forms.py
	chimere/locale/fr/LC_MESSAGES/django.po
	chimere/models.py
	chimere/static/chimere/css/styles.css
	chimere/templates/chimere/detail.html
	chimere/templatetags/chimere_tags.py
	chimere/views.py
	chimere/widgets.py
Diffstat (limited to 'docs/_build/html/_sources/upgrade.txt')
| -rw-r--r-- | docs/_build/html/_sources/upgrade.txt | 313 | 
1 files changed, 313 insertions, 0 deletions
| diff --git a/docs/_build/html/_sources/upgrade.txt b/docs/_build/html/_sources/upgrade.txt new file mode 100644 index 0000000..f2d0d64 --- /dev/null +++ b/docs/_build/html/_sources/upgrade.txt @@ -0,0 +1,313 @@ +.. -*- coding: utf-8 -*- + +======= +Upgrade +======= + +:Author: Étienne Loks +:date: 2012-10-08 +:Copyright: CC-BY 3.0 + + +Before any upgrade backup the database and all your installation files +(specially if you have made changes to them). +The process for migration requires a basic knowledge of Git and Linux CLI. It is +not an easy process. A work is done to easy the upgrade in later versions (>2.0) +of Chimère. + +If several versions has been published, you should repeat any upgrading steps. +For instance to upgrade from v1.1 to v2.0 you should first upgrade to v1.2 then +to v2.0. The only optional step is the integration of your customisations. + +The current stable version is 2.0. +If you are considering to contribute on Chimère get the Git master. + +The instruction are given for Debian Squeeze and Debian Wheezy. + + +Get new version of dependencies +------------------------------- + +Version 1.1 -> 1.2 +****************** + +.. code-block:: bash + +    apt-get install python-lxml libjs-jquery gpsbabel python-gdal + +Version 1.2 -> 2.0 +****************** + +Debian Squeeze +++++++++++++++ +Activate the backports: http://backports-master.debian.org/Instructions/ +Then install the new dependencies:: + +    apt-get install -t squeeze-backports python-django python-django-south \ +                       python-simplejson libjs-jquery-ui python-pyexiv2 \ +                       python-feedparser javascript-common + +Debian Wheezy ++++++++++++++ + +.. code-block:: bash + +    apt-get install python-django-south python-simplejson libjs-jquery-ui \ +                    python-pyexiv2 python-feedparser javascript-common + +If you are planing to do major import consider the install of `Celery +<http://celeryproject.org/>`_. + +.. code-block:: bash + +    apt-get install python-django-celery python-kombu + +Get the new sources +------------------- + +First of all we have to get the new version of the source code. +For this upgrade process, we are getting the source code from the Git +repository. + +To simplify further instructions, some environment variables are +initialized. + +.. code-block:: bash + +    CHIMERE_PATH=/srv/chimere +    CHIMERE_TAG=v1.2.0      # version 1.1 -> 1.2 +    CHIMERE_TAG=v2.0-RC3    # version 1.2 -> 2.0 +    CHIMERE_TAG=master      # version 2.0 -> master +    CHIMERE_LOCALNAME=mychimere + +Your local name is used for the name of your local git branch and the Python +package. As a Python package it should follow the rule of Python variable name: +it must be at least one letter and can have a string of numbers, letters and +"_" to any length. Don't begin the name by "_" because it has special +significance in Python. + +From a previous Git installation +******************************** + +.. code-block:: bash + +    cd $CHIMERE_PATH +    git checkout -b $CHIMERE_LOCALNAME # do it only if you haven't yet create a local branch +    git stash # if you have uncommited changes +    git checkout master +    git pull +    git checkout $CHIMERE_LOCALNAME +    git rebase $CHIMERE_TAG + +From a previous tarball installation +************************************ + +Remove first your old installation and get the Git version. + +.. code-block:: bash + +    cd $CHIMERE_PATH +    cd .. +    rm -rf $CHIMERE_PATH +    git clone git://www.peacefrogs.net/git/chimere +    cd chimere +    git checkout $CHIMERE_TAG +    git checkout -b $CHIMERE_LOCALNAME + + +Update basic settings +********************* + +Version 1.1 -> 1.2 +++++++++++++++++++ + +.. code-block:: bash + +    CHIMERE_APP_PATH=$CHIMERE_PATH/chimere +    vim $CHIMERE_APP_PATH/settings.py + +Add the line (adapted for your jquery and gpsbabel installation). + +.. code-block:: python + +    JQUERY_URL = SERVER_URL + 'jquery/jquery-1.4.4.min.js' +    GPSBABEL = '/usr/bin/gpsbabel' +    # simplify with an error of 5 meters +    GPSBABEL_OPTIONS = 'simplify,crosstrack,error=0.005k' + +Version 1.2 -> 2.0 +++++++++++++++++++ + +Project template +................ +Create a new project template. + +.. code-block:: bash + +    cd $CHIMERE_PATH +    cp -ra $CHIMERE_PATH/example_project $CHIMERE_LOCALNAME +    CHIMERE_APP_PATH=$CHIMERE_PATH/$CHIMERE_LOCALNAME + +local_settings +.............. +A *local_settings* file is now used. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    cp local_settings.py.sample local_settings.py +    vim local_settings.py + +Report your old settings.py in local_settings.py (at least the database +configuration). +Your *ROOT_URLCONF* must be set to **value_of_your_localname.urls**. + +logs +.... +Logging is now enabled by default in the file */var/log/django/chimere.log*. + +.. code-block:: bash + +    mkdir /var/log/django +    touch /var/log/django/chimere.log +    chown www-data -R /var/log/django + +Static files +............ + +Now static file are managed with *django.contrib.staticfiles*. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    ./manage.py collectstatic + +Move old static files to the new static directory. + +.. code-block:: bash + +    cp -ra $CHIMERE_PATH/chimere/static/* $CHIMERE_APP_PATH/static/ +    cp -ra $CHIMERE_PATH/chimere/static/icons/* $CHIMERE_APP_PATH/media/icons/ +    cp -ra $CHIMERE_PATH/chimere/static/upload $CHIMERE_APP_PATH/media/ + +Webserver configuration +....................... +If you are using Apache and WSGI to serve your Chimère, change your WSGI +configuration file to point to the correct settings: +**value_of_your_localname.settings**. + +Change your webserver directive to point to the correct static directory from +**your_chimere_path/chimere/static** to +**your_chimere_path/your_local_name/static**. + +Version 2.0 -> master ++++++++++++++++++++++ + +Update settings and static files. + +.. code-block:: bash + +    cp $CHIMERE_PATH/example_project/settings.py $CHIMERE_LOCALNAME +    ./manage.py collectstatic + +Migrate database +---------------- + +Version 1.1 -> 1.2 +****************** + +Migration scripts test your installation before making changes so you probably +won't have any lost but by precaution before running theses scripts don't forget +to backup your database. +You can also make a copy of your current database into a new database and make +the new installation to this new database. + +The gdal binding for python is necessary to run the upgrade scripts (available +in the python-gdal package in Debian). + +If you run the migration scripts in a production environnement stop the old +instance of Chimère before executing the migration script. Perhaps prepare the +web server to point to the new installation before doing the database upgrade +(cf. next paragraph). + +In *settings.py* verify that **chimere.scripts** is in the *INSTALLED_APPS*. + +After that in the chimere directory just execute the script. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    python ./scripts/upgrade.py + +Version 1.2 -> 2.0 +****************** + +Django South is now used to manage database migrations. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    ./manage.py syncdb +    ./manage.py migrate chimere 0001 --fake # fake the database initialisation +    ./manage.py migrate chimere + +A description field is now available for markers. If you would like to move +values of an old *Property model* to this new field, a script is available. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    ../chimere/scripts/migrate_properties.py +    # folow the instructions + +From 2.0 to master +****************** + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    ./manage.py syncdb +    ./manage.py migrate chimere + +Update translations +------------------- + +Version 1.1 -> 1.2 +****************** + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH +    ./manage.py compilemessages + +Version 1.2 -> 2.0 -> master +**************************** + +.. code-block:: bash + +    cd $CHIMERE_PATH/chimere +    django-admin compilemessages + +Force the upgrade of visitor's web browser cache +------------------------------------------------ + +If major changes in the javascript has be done between version, many of your +users could experience problems. There are many tricks to force the refresh +of their cache. One of them is to change the location of statics files. To do +that edit your local_settings.py and change:: + +    STATIC_URL = '/static/' + +to:: + +    STATIC_URL = '/static/v2.0.0/' + +Then in the static directory. + +.. code-block:: bash + +    cd $CHIMERE_APP_PATH/static +    ln -s `pwd` v2.0.0 + +Restart the web server to apply this changes. + | 
