Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INSTALL] Diviser le fichier install/03_install_db.sh #2544

Closed
joelclems opened this issue May 16, 2023 · 5 comments
Closed

[INSTALL] Diviser le fichier install/03_install_db.sh #2544

joelclems opened this issue May 16, 2023 · 5 comments

Comments

@joelclems
Copy link
Contributor

joelclems commented May 16, 2023

Séparer le fichier install/03_install_db.sh en plusieurs parties (https://github.com/PnX-SI/GeoNature/blob/master/install/03_create_db.sh)

on pourrais garder ce fichier qui ferait appel à deux scripts

  • install/db/install_db

    • avec toutes les actions nécéssitant sudo -u "postgres"
    • on pourrait créér le script create_extension.sql pour pouvoir le réutiliser par ailleurs (cf dockerisation)
      • sudo -u postgres -s psql -d $db_name -c "CREATE EXTENSION IF NOT EXISTS hstore;" |& tee -a "${LOG_FILE}"
        sudo -u postgres -s psql -d $db_name -c "CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';" |& tee -a "${LOG_FILE}"
        sudo -u postgres -s psql -d $db_name -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' |& tee -a "${LOG_FILE}"
        sudo -u postgres -s psql -d $db_name -c "CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA pg_catalog;" |& tee -a "${LOG_FILE}"
        sudo -u postgres -s psql -d $db_name -c 'CREATE EXTENSION IF NOT EXISTS "unaccent";' |& tee -a "${LOG_FILE}"
  • installdb/process_migration_and_data.sh

    • pour jouer toutes les migrations alembic
      • geonature db upgrade
      • geonature db autoupgrade
    • et les commandes d'insertions de données
      • geonature taxref ...
      • geonature sensitivity ...
      • !! à rendre reusable (pouvoir tester si la commande à déjà été jouée auparavent (en regardant dans la base ...)

On pourrait ensuite réutiliser le fichier installdb/process_migration_and_data.sh dans les actions de test des modules

  • peut être en faisant une version ligth qui suffirai aux test du module
    • ou l'on installe qu'un type de maille ou autre
    • et ou on n'installe pas les statuts
    • voir:

https://github.com/PnX-SI/gn_module_import/blob/9e1c7170129721d4a0e88d61b7193d9f2fe5e98d/.github/workflows/pytest.yml#L96-L103

@joelclems joelclems changed the title [INSTALL] Séparer le fichier install/03_install_db.sh [INSTALL] Diviser le fichier install/03_install_db.sh May 16, 2023
@camillemonchicourt
Copy link
Member

Si on garde ce fichier qui fait lui-même appel à 2 scripts, on va commencer à s'y perdre et pas simple en terme de lisibilité, non ?

Je partirai plutôt sur découper ce script en 2 :

  • 03a_install_db_structure.sh
  • 03b_install_db_data_migrations.sh

@joelclems
Copy link
Contributor Author

j'hésitais entre les deux, il faudra bien répercuter le changement de nom partout (script et docs)

@joelclems
Copy link
Contributor Author

joelclems commented May 16, 2023

petit points à régler

  • les logs
    • pour la partie create db on pourrais laisser tel quel
    • pour la partie alembic & data on peut logger la sortie du script 03b_install_db_data_migrations.sh |& tee -a "${LOG_FILE}"
      • ça joue sur l'emplacement des fichiers (et dans ce cas c'est plus pratique d'avoir un script install/03_install_db.sh qui appelle deux scripts
  • gérer DATA_DIRECTORY (selon si on est en MODE=dev

@joelclems
Copy link
Contributor Author

J'ai choisit de garder la partie install_dbtelle quelle dans le script 03_install_db.sh (elle n'a pas vocation à être utilisée ailleurs)
(j'ai seuelement ajouter un fichier create_extentions.sql pour référencer les extentions installées (hors posgis & co) pour pouvoir l'utiliser ailleurs).

et de placer la partie alembic + commande d'installations de données (taxref, sensitivity) dans un script à part et appelé dans install/db/process_migration_and_data.sh

il y aussi un fichier install/db/process_migration_and_data_for_test.sh, un peu plus ligth pour les actions pytest.yml et cypress.yml (ça irai presque pour le module d'import si ce n'est qu'on a des grille en 10 et pas en 5) (https://github.com/PnX-SI/gn_module_import/blob/master/.github/workflows/pytest.yml)

@camillemonchicourt
Copy link
Member

Intégré dans la 2.13.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants