Local development settings
- Add a new settings file for local development - Update README.md according to the new setup
This commit is contained in:
parent
a6b0c51d39
commit
cb1d253517
6 changed files with 53 additions and 87 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,6 +9,7 @@ venv/
|
|||
/src
|
||||
media/
|
||||
*.log
|
||||
*.sqlite3
|
||||
|
||||
# PyCharm
|
||||
.idea
|
||||
|
|
79
README.md
79
README.md
|
@ -66,6 +66,7 @@ car par défaut Django n'écoute que sur l'adresse locale de la machine virtuell
|
|||
or vous voudrez accéder à GestioCOF depuis votre machine physique. L'url à
|
||||
entrer dans le navigateur est `localhost:8000`.
|
||||
|
||||
|
||||
#### Serveur de développement type production
|
||||
|
||||
Sur la VM Vagrant, un serveur apache est configuré pour servir GestioCOF de
|
||||
|
@ -79,26 +80,25 @@ Ce serveur se lance tout seul et est accessible en dehors de la VM à l'url
|
|||
change, il faut relancer le worker avec `sudo supervisorctl restart worker` pour
|
||||
visualiser la dernière version du code.
|
||||
|
||||
|
||||
### 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.
|
||||
Vous pouvez opter 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 pip, les librairies de développement de python, un
|
||||
client et un serveur MySQL ainsi qu'un serveur redis ; sous Debian et dérivées
|
||||
(Ubuntu, ...) :
|
||||
Il vous faudra installer pip, les librairies de développement de python ainsi
|
||||
que sqlite3, un moteur de base de données léger et simple d'utilisation ; sous
|
||||
Debian et dérivées (Ubuntu, ...) :
|
||||
|
||||
sudo apt-get install python-pip python-dev libmysqlclient-dev redis-server
|
||||
sudo apt-get install python3-pip python3-dev sqlite3
|
||||
|
||||
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 -p $(which python3)
|
||||
python3 -m venv venv
|
||||
|
||||
L'option `-p` sert à préciser l'exécutable python à utiliser. Vous devez choisir
|
||||
python3, si c'est la version de python par défaut sur votre système, ceci n'est
|
||||
pas nécessaire. Pour l'activer, il faut faire
|
||||
Pour l'activer, il faut faire
|
||||
|
||||
. env/bin/activate
|
||||
|
||||
|
@ -109,61 +109,12 @@ Vous pouvez maintenant installer les dépendances Python depuis le fichier
|
|||
|
||||
pip install -r requirements-devel.txt
|
||||
|
||||
Copiez le fichier `cof/settings_dev.py` dans `cof/settings.py`.
|
||||
Pour terminer, copier le fichier `cof/settings/secret_example.py` vers
|
||||
`cof/settings/secret.py`. Sous Linux ou Mac, préférez plutôt un lien symbolique
|
||||
pour profiter de faon transparent des mises à jour du fichier d'exemple:
|
||||
|
||||
#### Installation avec MySQL
|
||||
ln -s cof/settngs/secret_example.py cof/settings/secret.py
|
||||
|
||||
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
|
||||
|
||||
|
@ -188,7 +139,7 @@ Vous êtes prêts à développer ! Lancer GestioCOF en faisant
|
|||
|
||||
Pour mettre à jour les paquets Python, utiliser la commande suivante :
|
||||
|
||||
pip install --upgrade -r requirements.txt -r requirements-devel.txt
|
||||
pip install --upgrade -r requirements-devel.txt
|
||||
|
||||
Pour mettre à jour les modèles après une migration, il faut ensuite faire :
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ The settings that are not listed here are imported from .common
|
|||
|
||||
import os
|
||||
|
||||
from .common import *
|
||||
from .common import * # NOQA
|
||||
from .common import BASE_DIR, INSTALLED_APPS, MIDDLEWARE_CLASSES
|
||||
|
||||
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||
|
@ -28,26 +29,6 @@ MEDIA_URL = '/media/'
|
|||
# Debug tool bar
|
||||
# ---
|
||||
|
||||
# "Versions" panel of django-debug-toolbar <=1.8 is not compatible with
|
||||
# wagtailmenus.
|
||||
# See https://github.com/jazzband/django-debug-toolbar/issues/922
|
||||
# TODO: Bug should be fixed in ddt 1.9 (not released yet). When fixed, this
|
||||
# declaration may be removed.
|
||||
DEBUG_TOOLBAR_PANELS = [
|
||||
'debug_toolbar.panels.timer.TimerPanel',
|
||||
'debug_toolbar.panels.settings.SettingsPanel',
|
||||
'debug_toolbar.panels.headers.HeadersPanel',
|
||||
'debug_toolbar.panels.request.RequestPanel',
|
||||
'debug_toolbar.panels.sql.SQLPanel',
|
||||
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
|
||||
'debug_toolbar.panels.templates.TemplatesPanel',
|
||||
'debug_toolbar.panels.cache.CachePanel',
|
||||
'debug_toolbar.panels.signals.SignalsPanel',
|
||||
'debug_toolbar.panels.logging.LoggingPanel',
|
||||
'debug_toolbar.panels.redirects.RedirectsPanel',
|
||||
]
|
||||
|
||||
|
||||
def show_toolbar(request):
|
||||
"""
|
||||
On ne veut pas la vérification de INTERNAL_IPS faite par la debug-toolbar
|
||||
|
|
33
cof/settings/local.py
Normal file
33
cof/settings/local.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
"""
|
||||
Django local settings for the cof project.
|
||||
The settings that are not listed here are imported from .common
|
||||
"""
|
||||
|
||||
from .dev import * # NOQA
|
||||
|
||||
|
||||
# Use sqlite for local development
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": "db.sqlite3",
|
||||
}
|
||||
}
|
||||
|
||||
# Use the default cache backend for local development
|
||||
CACHES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.cache.backends.locmem.LocMemCache"
|
||||
}
|
||||
}
|
||||
|
||||
# Use the default in memory asgi backend for local development
|
||||
CHANNEL_LAYERS = {
|
||||
"default": {
|
||||
"BACKEND": "asgiref.inmemory.ChannelLayer",
|
||||
"ROUTING": "cof.routing.routing",
|
||||
}
|
||||
}
|
||||
|
||||
# No need to run collectstatic -> unset STATIC_ROOT
|
||||
STATIC_ROOT = None
|
|
@ -3,7 +3,7 @@ import os
|
|||
import sys
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cof.settings")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cof.settings.local")
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
-r requirements.txt
|
||||
django-debug-toolbar
|
||||
-e git://github.com/jazzband/django-debug-toolbar.git@88ddc7bdf39c7ff660eac054eab225ac22926754#egg=django-debug-toolbar
|
||||
django-debug-panel
|
||||
ipython
|
||||
|
|
Loading…
Reference in a new issue