From 022999da8e44d527c91c60ab287ba7499b54a579 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 23 Jul 2021 14:45:56 +0300 Subject: [PATCH] user database creation script --- README.md | 29 ++++++++++++++--------------- tools/config.sh | 2 ++ tools/create_database.sh | 16 +++++++++++----- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 11b49291..a44a7492 100644 --- a/README.md +++ b/README.md @@ -22,15 +22,19 @@ ne soit visible des utilisateurs. Développement en cours, certaines pages fonctionnent, d'autres pas. -### État actuel (13 juillet 21) +### État actuel (23 juillet 21) - - passage à l'unicode en cours (certaines E/S encore à revoir). + - serveur de développement fonctionnel (pas testé en mode "production" sous gunicorn+nginx). + + - logs à revoir - pas d'import/export excel. + - pas de pages gestion utilisateurs. + **En cours:** - - tests + - tests, formulaires utilisateurs, logging. ## Setup (sur Debian 10 / python3.7) @@ -67,19 +71,14 @@ via `sqlalchemy`. ### Configuration de la base utilisateurs -On va créer une base nommée `SCO8USERS`, appartenant à l'utilisateur (aka role) postgres `scodoc`. -Cet utilisateur sera créé ainsi sur le serveur linux:: - - su - postgres - createuser --no-createdb --no-createrole --pwprompt scodoc - -Puis création de la base (en tant qu'utilisateur `postgres`): - - createdb -O scodoc SCO8USERS +Lancer le script `tools/create_database.sh` -### Initialisation base par flask +Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`. +Cet utilisateur est créé si nécessaire. -En tant qu'utilisateur `www-data` (compat. avec ScoDoc7): +### Initialisation de la base utilisateur par Flask + +En tant qu'utilisateur `scodoc`: flask db init flask db migrate -m "users and roles tables" @@ -111,7 +110,7 @@ Pour créer un utilisateur "super admin", c'est à dire admin dans tous les dép ## Lancement serveur (développement, sur VM Linux) -En tant qu'utilisateur `www-data` (pour avoir accès aux bases départements de ScoDoc7): +En tant qu'utilisateur `scodoc` (pour avoir accès aux bases départements de ScoDoc7): 1. Lancer memcached: diff --git a/tools/config.sh b/tools/config.sh index 3e91d757..44043da0 100644 --- a/tools/config.sh +++ b/tools/config.sh @@ -34,6 +34,8 @@ export POSTGRES_USER="$SCODOC_USER" # Postgresql superuser: export POSTGRES_SUPERUSER=postgres +export SCODOC_USER_DB="SCO8USERS" + # psql command: if various versions installed, force the one we want: if [ "${debian_version}" = "10" ] then diff --git a/tools/create_database.sh b/tools/create_database.sh index e684f1b4..9637ac11 100755 --- a/tools/create_database.sh +++ b/tools/create_database.sh @@ -3,14 +3,20 @@ # Create database for a ScoDoc instance # This script must be executed as postgres user # -# $db_name is passed ias an environment variable +# $db_name is passed as an environment variable source config.sh source utils.sh -echo 'Creating postgresql database' +if [ $(id -n -u) != "$POSTGRES_SUPERUSER" ] +then + die "$0 must be run as user $POSTGRES_SUPERUSER" +fi -# --- -echo 'Creating postgresql database ' "$db_name" -createdb -E UTF-8 -p "$POSTGRES_PORT" -O "$POSTGRES_USER" "$db_name" +# 1--- CREATION UTILISATEUR POSTGRESQL +init_postgres_user + +# 2--- CREATION BASE UTILISATEURS +echo 'Creating postgresql database for users:' "$SCODOC_USER_DB" +createdb -E UTF-8 -p "$POSTGRES_PORT" -O "$POSTGRES_USER" "$SCODOC_USER_DB"