forked from ScoDoc/ScoDoc
documentation install et migration
This commit is contained in:
parent
91ece1274e
commit
3267a1f9bf
75
README.md
75
README.md
@ -10,17 +10,16 @@ Documentation utilisateur: <https://scodoc.org>
|
||||
|
||||
## Branche ScoDoc 8 expérimentale
|
||||
|
||||
N'utiliser que pour les développements et tests, dans le cadre de la migration de Zope vers Flask.
|
||||
N'utiliser que pour les développements et tests.
|
||||
|
||||
La version ScoDoc8 est basée sur Flask (au lieu de Zope) et sur **python 3.7+**.
|
||||
Elle ne sera pas mise en production, c'est une version de développement pour le passage à Python 3.
|
||||
|
||||
De très nombreux changements sont susceptibles d'affecter l'API, mais on s'efforce à ce que rien
|
||||
ne soit visible des utilisateurs.
|
||||
ne soit visible des utilisateurs Web.
|
||||
|
||||
## Work in Progress (WIP)
|
||||
|
||||
Développement en cours, certaines pages fonctionnent, d'autres pas.
|
||||
**Work in Progress (WIP)**: développement en cours, certaines pages fonctionnent, d'autres pas:
|
||||
merci de signaler les erreurs.
|
||||
|
||||
### État actuel (23 juillet 21)
|
||||
|
||||
@ -37,49 +36,52 @@ Développement en cours, certaines pages fonctionnent, d'autres pas.
|
||||
- tests, formulaires utilisateurs, logging.
|
||||
|
||||
|
||||
## Setup (sur Debian 10 / python3.7)
|
||||
## Installation (sur Debian 10 / python3.7)
|
||||
|
||||
Pour les dev, le plus simple est de partir d'une install fonctionnelle de ScoDoc7 sous git, et de changer de branche
|
||||
On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7 et migrer les données.
|
||||
|
||||
git checkout ScoDoc8
|
||||
### Installation
|
||||
|
||||
Debian 10 est livré avec Python 3.7.
|
||||
Sur un système Linux Debian 10, en tant que `root`:
|
||||
|
||||
apt-get install python3-dev
|
||||
apt-get install python3-venv
|
||||
apt-get install libpq-dev
|
||||
apt-get install libcrack2-dev
|
||||
- Charger la dernière release depuis https://scodoc.org/git/viennet/ScoDoc/releases
|
||||
|
||||
Création d'un environnement:
|
||||
- Déplacer ou copier le fichier `scodoc-v8.x.y.tgz` dans `/opt` et le décomprimer:
|
||||
|
||||
python3 -m venv venv
|
||||
sudo su
|
||||
cd /opt; tar xf - scodoc-v8.x.y.tgz # remplacer x et y par votre version
|
||||
|
||||
Puis installation de Flask:
|
||||
- Lancer le script d'installation:
|
||||
|
||||
source venv/bin/activate
|
||||
pip install flask
|
||||
pip install wheel
|
||||
cd /opt/scodoc8/tools
|
||||
./install_debian10.sh
|
||||
|
||||
Installer les dépendances:
|
||||
ce script crée un compte utilisateur "scodoc".
|
||||
|
||||
pip install -r requirements-3.7.txt
|
||||
Note: si vous installez sur une machine déjà configurée pour ScoDoc 7, il
|
||||
est inutile de reconfigurer la messagerie et le firewall.
|
||||
|
||||
## Bases de données
|
||||
### Bases de données
|
||||
ScoDoc8 utilise les bases de département de ScoDoc7, mais une nouvelle base
|
||||
utilisateurs nommée `SCO8USERS` (au lieu de `SCOUSERS`), qui est manipulée
|
||||
via `sqlalchemy`.
|
||||
|
||||
### Configuration de la base utilisateurs
|
||||
|
||||
Lancer le script `tools/create_database.sh`
|
||||
Lancer le script:
|
||||
|
||||
su postgres
|
||||
cd /opt/scodoc8/tools
|
||||
./create_database.sh
|
||||
|
||||
Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`.
|
||||
Cet utilisateur est créé si nécessaire.
|
||||
Cet utilisateur est automatiquement créé si nécessaire.
|
||||
|
||||
### Initialisation de la base utilisateur par Flask
|
||||
|
||||
En tant qu'utilisateur `scodoc`:
|
||||
|
||||
su scodoc # si besoin
|
||||
flask db init
|
||||
flask db migrate -m "users and roles tables"
|
||||
flask db upgrade
|
||||
@ -107,6 +109,31 @@ Pour créer un utilisateur "super admin", c'est à dire admin dans tous les dép
|
||||
|
||||
flask user-create admin1 SuperAdmin @all
|
||||
|
||||
## Migration d'une installation ScoDoc 7
|
||||
|
||||
Le script `migrate_from_scodoc7.sh` va déplacer les donneés et reconfigurer les bases de données
|
||||
de votre installation ScoDoc 7 pour passer à ScoDoc 8 (*ne pas utiliser en production !*).
|
||||
**Les modifications effectuées sont sans retour: ScoDoc 7 ne fonctionnera plus !**
|
||||
|
||||
1. S'assurer que l'installation ScoDoc 7 est à jour
|
||||
|
||||
sudo su
|
||||
cd /opt/scodoc/Products/ScoDoc/config
|
||||
./upgrade.sh
|
||||
|
||||
2. Arrêter le service ScoDoc 7
|
||||
|
||||
systemctl stop scodoc7
|
||||
|
||||
S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans qui la migration va échouer.
|
||||
|
||||
3. Lancer le script de migration
|
||||
ScoDoc 8 doit avoir été installé comme expliqué plus haut.
|
||||
|
||||
sudo su
|
||||
cd /opt/scodoc8/tools
|
||||
./migrate_from_scodoc7.sh
|
||||
|
||||
|
||||
## Lancement serveur (développement, sur VM Linux)
|
||||
|
||||
|
@ -26,6 +26,9 @@ then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ------------ Unix user
|
||||
check_create_scodoc_user
|
||||
|
||||
# ------------ Permissions & directories
|
||||
change_scodoc_file_ownership
|
||||
|
||||
@ -39,6 +42,11 @@ apt-get -y install postgresql
|
||||
apt-get -y install curl
|
||||
apt-get -y install graphviz
|
||||
|
||||
# ------------ CREATION DU VIRTUALENV
|
||||
echo "Creating python3 virtualenv..."
|
||||
cd "$SCODOC_DIR" || die "can't cd $SCODOC_DIR"
|
||||
python3 -m venv venv || die "can't create Python 3 virtualenv"
|
||||
|
||||
# ------------ INSTALL DES PAQUETS PYTHON (3.7)
|
||||
# ScoDoc8 uses pip in our env
|
||||
source venv/bin/activate
|
||||
|
@ -6,23 +6,50 @@ source config.sh
|
||||
source utils.sh
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 v9.x.y, where v9.x.y est le numéro de version créé"
|
||||
echo $1 >&2
|
||||
echo "Usage: $0 [-f] -v 9.x.y, where 9.x.y est le numéro de version créé" >&2
|
||||
echo " -f: force release even if there's local changes" >&2
|
||||
exit 1
|
||||
}
|
||||
if [ $# != 1 ] || [ $1 = "-h" ] || [ $1 = "--help" ]
|
||||
|
||||
FORCE_RELEASE=0
|
||||
while getopts "hfv:" opt; do
|
||||
case $opt in
|
||||
f)
|
||||
FORCE_RELEASE=1
|
||||
;;
|
||||
v)
|
||||
VERSION=$OPTARG
|
||||
;;
|
||||
h)
|
||||
usage "Prépare une release"
|
||||
;;
|
||||
\?)
|
||||
usage "Invalid option: -$OPTARG"
|
||||
;;
|
||||
:)
|
||||
usage "Option -$OPTARG requires an argument."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$VERSION" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
VERSION=$1
|
||||
SOURCE_URL="https://scodoc.org/git/viennet/ScoDoc.git"
|
||||
SOURCE_BRANCH="ScoDoc8"
|
||||
RESULTFILE="scodoc-$VERSION.tgz"
|
||||
|
||||
# Check local diffs, ignoring file modes (changed on VMs)
|
||||
local_diffs=$(git -c core.fileMode=false status --porcelain --untracked-files=no | wc -l)
|
||||
if [ "$local_diffs" -ne 0 ]
|
||||
if [ "$FORCE_RELEASE" -eq 0 ]
|
||||
then
|
||||
# Check local diffs, ignoring file modes (changed on VMs)
|
||||
local_diffs=$(git -c core.fileMode=false status --porcelain --untracked-files=no | wc -l)
|
||||
if [ "$local_diffs" -ne 0 ]
|
||||
then
|
||||
die "you have local diffs: git commit or stash before releasing"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Preparing release $VERSION"
|
||||
@ -33,13 +60,19 @@ cd "/tmp/$VERSION" || die "can't cd /tmp/$VERSION"
|
||||
git clone "$SOURCE_URL" || die "git error cloning $SOURCE_URL"
|
||||
cd ScoDoc || die "no ScoDoc directory !"
|
||||
git checkout "$SOURCE_BRANCH" || die "git ckecking out branch $SOURCE_BRANCH"
|
||||
|
||||
# --- Create empty .../var/ subdir
|
||||
echo "Creating empty local directories..."
|
||||
mkdir -p var/scodoc || die "can't create var subdirectory"
|
||||
mkdir var/scodoc/archives var/scodoc/photos var/scodoc/tmp var/scodoc/config
|
||||
mkdir var/scodoc/config/version var/scodoc/config/depts var/scodoc/config/logos
|
||||
cd ..
|
||||
|
||||
# --- Archive
|
||||
echo "Preparing archive..."
|
||||
mv ScoDoc scodoc8
|
||||
chown -R scodoc scodoc8
|
||||
tar cfz "scodoc8-$VERSION.tgz" scodoc8
|
||||
|
||||
tar cfz "$RESULTFILE" scodoc8
|
||||
echo
|
||||
echo "Release: $(pwd)/$RESULTFILE"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user