Installation

L’installation décrite ci-dessous vaut pour une ubuntu server 13.10. Dans le cas d’un autre système d’exploitation veuillez adapter les commandes ci-dessous.

Prérequis

Il faut avoir un accès en lecture pour apogée pour la liste des tables suivantes : .....

Et un accès en écriture sur les tables OPI.

Toutes les commandes ci-dessous se font en tant qu’utilisateur normale. Il faut donc tenir compte des sudo pour les commandes en temsp que superutilisateur, et sans le sudo pour les commandes en tant qu’utilisateur normal.

Avertissement

L’installation du virtualenv ne doit pas se faire en tant que root pour des raisons de sécurité. De plus pour tous les paquets pythons, il faut passer par le gestionnaire pip et non par le gestionnaire de paquet du système.

Commandes

  1. Installation de pip :

    sudo apt-get install python-setuptools
    sudo easy_install pip
    
  2. Installation de virtualenv

    sudo pip install virtualenv
    
  3. Création du virtualenv

    mkdir .Envs
    cd .Envs
    virtualenv django_projet
    

    Pour rappel : VirtualEnv permet de faire une genre de sandbox pour les applications pythons. Pour activer le virtualenv

    source ~/.Envs/django_projet/bin/activate
    
  4. Installation de postgresql

    sudo apt-get install postgresql libpq-dev
    

    Configuration de postgresql

    sudo -i -u postgres
    createuser -P mon_utilisateur
    createdb -O mon_utilisateur -E UTF8 ma_database
    exit
    

    mon_utilisateur et ma_database serviront pour la connexion à la base postgresql

    installation du connecteur python

    sudo apt-get install python-dev
    source ~/.Envs/django_projet/bin/activate
    pip install psycopg2
    

    Modifier votre fichier /etc/postgresql/x.x/main/pg_hba.conf et modifier la ligne local en remplacant peer par indent

    sudo service postgresql restart
    
  5. Installation d’instant client d’oracle:

    Télécharger sur http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html la version 11.2 de instant client (nécessite la création d’un compte) Deux zip à télécharger : instantclient-basic-linux.ARCH.Version.zip et instantclient-sdk-linux.ARCH.Version.zip Il faut d’abord créer un compte. http://download.oracle.com/otn/linux/instantclient/11204/instantclient-basic-linux.x64-11.2.0.4.0.zip http://download.oracle.com/otn/linux/instantclient/11204/instantclient-sdk-linux.x64-11.2.0.4.0.zip une fois les zips téléchargés et uploader sur le serveur:

    sudo mv instantclient-basic-linux.x64-11.2.0.4.0.zip /opt
    sudo mv instantclient-sdk-linux.x64-11.2.0.4.0.zip /opt
    sudo apt-get install unzip
    cd /opt
    sudo unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
    sudo unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
    sudo rm instantclient-basic-linux.x64-11.2.0.4.0.zip
    sudo rm instantclient-sdk-linux.x64-11.2.0.4.0.zip
    cd instantclient_11_2/
    sudo ln -s libclntsh.so.11.1 libclntsh.so
    sudo ln -s libocci.so.11.1 libocci.so
    

    ensuite rajouté dans le .bashrc de son user

    export ORACLE_HOME=/opt/instantclient_11_2
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    

    puis

    source ~/.bashrc
    sudo apt-get install libaio1
    
  6. installation de cx_oracle

    source ~/.Envs/django_projet/bin/activate
    pip install cx_oracle
    

    si besoin (des fois pypi ne fonctionne pas très bien)

    pip install cx_oracle  --allow-external cx-oracle  --allow-unverified cx-oracle
    
  7. ajout de django_apogee

    sudo apt-get install git
    source ~/.Envs/django_projet/bin/activate
    pip install git+https://github.com/fsx999/django_apogee.git
    
  8. test de l’installation

    cd ~
    mkdir projet
    cd projet
    django-admin.py startproject test_projet
    cd test_projet
    chmod +x manage.py
    

    on peut installer django-extensions et ipython pour améliorer la console de django

    pip install django-extensions
    pip install ipython
    

    configuration du settings.py

    # après INSTALLED_APPS
    INSTALLED_APPS += (
    'django_extensions',
    'django_apogee',
    )
    
    # La connexion aux bases de donnée
    DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.postgresql_psycopg2',
          'NAME': 'ma_base',
          'USER': 'mon_utilisateur',
          'PASSWORD': 'mon_password!',
          'HOST': 'localhost',  # Important pour postgresql
          'PORT': '',
    
      },
      'oracle': {
          'ENGINE': 'django.db.backends.oracle',
          'NAME': 'nom_de_la_base_oracle_apogee',
          'USER': 'utlisateur',
          'PASSWORD': 'password',
          'HOST': 'url_serveur_oracle',
          'PORT': 'port_oracle',
      },
    }
    
    ./manage.py syncdb
    ./manage.py migrate
    

Test connexion

./manage.py test_connexion_apogee

si le test de connexion fonctionne, passez à la suite : Initialisation de la base