forked from DGNum/gestioCOF
7f6b5c8ad8
Clarifie la procédure de configuration de MySQL lors d'une installation manuelle et intègre un paragraphe pour expliquer comment utiliser SQLite.
165 lines
6.4 KiB
Markdown
165 lines
6.4 KiB
Markdown
# GestioCOF
|
|
|
|
## Installation
|
|
|
|
### Vagrant
|
|
|
|
La façon recommandée d'installer GestioCOF sur votre machine est d'utiliser
|
|
[Vagrant](https://www.vagrantup.com/). Vagrant permet de créer une machine
|
|
virtuelle minimale sur laquelle tournera GestioCOF; ainsi on s'assure que tout
|
|
le monde à la même configuration de développement (même sous Windows !), et
|
|
l'installation se fait en une commande.
|
|
|
|
Pour utiliser Vagrant, il faut le
|
|
[télécharger](https://www.vagrantup.com/downloads.html) et l'installer.
|
|
|
|
Si vous êtes sous Linux, votre distribution propose probablement des paquets
|
|
Vagrant dans le gestionnaire de paquets (la version sera moins récente, ce qui
|
|
peut parfois poser des problèmes de compatibilité).
|
|
|
|
Vagrant permet d'utiliser différents types de machines virtuelles; par défaut
|
|
il utilise [Virtualbox](https://www.virtualbox.org/) qu'il vous faudra
|
|
également installer.
|
|
|
|
Une fois ces dépendances installées voici quelques commandes importants pour
|
|
gérer la machine virtuelle :
|
|
|
|
- `vagrant up` permet de lancer la machine virtuelle. Si une machine virtuelle
|
|
existe déjà, elle sera réutilisée; sinon, Vagrant va créer et configurer une
|
|
nouvelle machine virtuelle pour vous (la première fois que vous lancez cette
|
|
commande, Vagrant va télécharger une image d'Ubuntu; il vaut mieux avoir une
|
|
connection Internet pas trop mauvaise).
|
|
|
|
- `vagrant suspend` permet de sauver l'état de la machine virtuelle sur le
|
|
disque pour la relancer plus tard (y compris après un reboot) avec `vagrant
|
|
up`
|
|
|
|
- `vagrant halt` permet d'éteindre la machine virtuelle (par comparaison avec
|
|
`vagrant suspend`, cela prend moins de place sur le disque car il n'y a pas
|
|
besoin de sauver la RAM, mais la recréation avec `vagrant up` sera plus
|
|
lente)
|
|
|
|
- Enfin, `vagrant destroy` permet de détruire complétement la machine
|
|
virtuelle : lors du prochain appel de `vagrant up`, elle sera réinstallée de
|
|
zéro. *Attention, contrairement aux deux méthodes précédentes, `vagrant
|
|
destroy` détruira irrémédiablement le contenu de votre base de données
|
|
locale, si elle vous est d'un quelconque intérêt, réfléchissez à deux fois !*
|
|
|
|
- `vagrant ssh` vous connecte en SSH à la machine virtuelle, dans le dossier
|
|
où est installé GestioCOF. Vous pouvez utiliser les commandes Django
|
|
habituelles (`manage.py runserver` etc.); toutefois pour lancer le serveur il faut faire
|
|
|
|
python manage.py runserver 0.0.0.0:8000
|
|
|
|
car par défaut Django n'écoute que sur l'adresse locale de la machine
|
|
virtuelle - or vous voudrez accéder à GestioCOF depuis votre machine
|
|
physique.
|
|
|
|
**Le dossier avec le code de GestioCOF est partagé entre la machine virtuelle
|
|
et votre machine physique : vous pouvez donc utiliser votre éditeur favori pour
|
|
coder depuis l'extérieur de la machine virtuelle, et les changements seront
|
|
répercutés dans la machine virtuelle.**
|
|
|
|
### Installation manuelle
|
|
|
|
Si vous optez pour une installation manuelle plutôt que d'utiliser Vagrant, il
|
|
est fortement conseillé d'utiliser un environnement virtuel pour Python.
|
|
|
|
Il vous faudra installer mercurial, pip, les librairies de développement de
|
|
python, ainsi qu'un client et un serveur MySQL ; sous Debian et dérivées (Ubuntu, ...) :
|
|
|
|
sudo apt-get install mercurial python-pip python-dev libmysqlclient-dev
|
|
|
|
Si vous décidez d'utiliser un environnement virtuel Python (virtualenv;
|
|
fortement conseillé), déplacez-vous dans le dossier où est installé GestioCOF
|
|
(le dossier où se trouve ce README), et créez-le maintenant :
|
|
|
|
virtualenv env
|
|
|
|
Pour l'activer, il faut faire
|
|
|
|
. env/bin/activate
|
|
|
|
dans le même dossier.
|
|
|
|
Vous pouvez maintenant installer les dépendances Python depuis les fichiers
|
|
`requirements.txt` et `requirements-devel.txt` :
|
|
|
|
pip install -r requirements.txt -r requirements-devel.txt
|
|
|
|
Enfin, copiez le fichier `cof/settings_dev.py` dans `cof/settings.py`.
|
|
|
|
#### Installation avec MySQL
|
|
|
|
Il faut maintenant installer MySQL. Si vous n'avez pas déjà MySQL installé sur
|
|
votre serveur, il faut l'installer ; sous Debian et dérivées (Ubuntu, ...) :
|
|
|
|
sudo apt-get install mysql-server
|
|
|
|
Il vous demandera un mot de passe pour le compte d'administration MySQL,
|
|
notez-le quelque part (ou n'en mettez pas, le serveur n'est accessible que
|
|
localement par défaut). Si vous utilisez une autre distribution, consultez la
|
|
documentation de votre distribution pour savoir comment changer ce mot de passe
|
|
et démarrer le serveur MySQL (c'est automatique sous Ubuntu).
|
|
|
|
Vous devez alors créer un utilisateur local et une base `cof_gestion`, avec le
|
|
mot de passe de votre choix (remplacez `mot_de_passe`) :
|
|
|
|
mysql -uroot -e "CREATE DATABASE cof_gestion; GRANT ALL PRIVILEGES ON cof_gestion.* TO 'cof_gestion'@'localhost' IDENTIFIER BY 'mot_de_passe'"
|
|
|
|
Éditez maintenant le fichier `cof/settings.py` pour y intégrer ces changements ;
|
|
la définition de `DATABASES` doit ressembler à (à nouveau, remplacez
|
|
`mot_de_passe` de façon appropriée) :
|
|
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
'NAME': 'cof_gestion',
|
|
'USER': 'cof_gestion',
|
|
'PASSWORD': 'mot_de_passe',
|
|
}
|
|
}
|
|
|
|
#### Installation avec SQLite
|
|
|
|
GestioCOF est installé avec MySQL sur la VM COF, et afin d'avoir un
|
|
environnement de développement aussi proche que possible de ce qui tourne en
|
|
vrai pour éviter les mauvaises surprises, il est conseillé d'utiliser MySQL sur
|
|
votre machine de développement également. Toutefois, GestioCOF devrait
|
|
fonctionner avec d'autres moteurs SQL, et certains préfèrent utiliser SQLite
|
|
pour sa légèreté et facilité d'installation.
|
|
|
|
Si vous décidez d'utiliser SQLite, il faut l'installer ; sous Debian et dérivées :
|
|
|
|
sudo apt-get install sqlite3
|
|
|
|
puis éditer le fichier `cof/settings.py` pour que la définition de `DATABASES`
|
|
ressemble à :
|
|
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
|
|
}
|
|
}
|
|
|
|
#### Fin d'installation
|
|
|
|
Il ne vous reste plus qu'à initialiser les modèles de Django avec la commande suivante :
|
|
|
|
python manage.py migrate
|
|
|
|
et vous êtes prêts à développer ! Lancer GestioCOF en faisant
|
|
|
|
python manage.py runserver
|
|
|
|
### Mise à jour
|
|
|
|
Pour mettre à jour les paquets Python, utiliser la commande suivante :
|
|
|
|
pip install --upgrade -r requirements.txt -r requirements-devel.txt
|
|
|
|
Pour mettre à jour les modèles après une migration, il faut ensuite faire :
|
|
|
|
python manage.py migrate
|