Commit 4d40330c authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release_3.0.0' into test

parents f615e884 04cd3b0b
Loading
Loading
Loading
Loading
+44 −6
Original line number Diff line number Diff line
@@ -14,18 +14,56 @@ Cf. [3.0.0/physalis.sql](3.0.0/physalis.sql).
Serveur d'application
---------------------

- Sur le serveur d'application, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`)
  puis lancez les commandes suivantes pour installer la nouvelle version :
- Sur le serveur d'application, vous devez installer PHP 8.0. Voici un exemple, à adapter à votre situation :

```bash
git fetch && git fetch --tags && git checkout --force 3.0.0 && rm -rf vendor/* && bash install.sh
export PHP_VERSION="8.0"
export APACHE_CONF_DIR=/etc/apache2
export PHP_CONF_DIR=/etc/php/${PHP_VERSION}
export OCI8_PACKAGE=oci-3.0.1
pear config-set http_proxy "$http_proxy"

cd /tmp
wget https://packages.sury.org/php/apt.gpg
sudo apt-key add apt.gpg
sudo apt update
sudo apt upgrade

sudo -E apt install -y apache2 ca-certificates curl ghostscript ghostscript-x git ldap-utils libaio1 libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libmcrypt-dev libmemcached-dev libssl-dev libxml2-dev make memcached libmemcached-tools netcat-openbsd php-pear php${PHP_VERSION} php${PHP_VERSION}-bcmath php${PHP_VERSION}-curl php${PHP_VERSION}-dev php${PHP_VERSION}-fpm php${PHP_VERSION}-gd php${PHP_VERSION}-gettext php${PHP_VERSION}-iconv php${PHP_VERSION}-imagick php${PHP_VERSION}-intl php${PHP_VERSION}-ldap php${PHP_VERSION}-mbstring php${PHP_VERSION}-memcached php${PHP_VERSION}-mysql php${PHP_VERSION}-opcache php${PHP_VERSION}-pgsql php${PHP_VERSION}-soap php${PHP_VERSION}-xml php${PHP_VERSION}-zip php${PHP_VERSION}-cli php${PHP_VERSION}-common php${PHP_VERSION}-opcache php${PHP_VERSION}-readline ssh ssl-cert subversion unzip vim wget zlib1g-dev
sudo pecl install xdebug-3.2.2 && sh -c "echo 'zend_extension=xdebug.so' > /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini" && sudo sh -c "echo 'zend_extension=xdebug.so' > /etc/php/${PHP_VERSION}/fpm/conf.d/20-xdebug.ini"
sudo update-alternatives --set php /usr/bin/php${PHP_VERSION}
sudo a2enmod proxy_fcgi setenvif
sudo a2disconf php7.4-fpm
sudo a2enconf php8.0-fpm
sudo service php7.4-fpm stop
sudo service php8.0-fpm start
sudo service apache2 restart

sudo pecl uninstall oci8
cd /tmp
wget https://git.unicaen.fr/open-source/docker/sygal-import-ws-image/-/blob/master/resources/instantclient-basiclite-linux.x64-18.5.0.0.0dbru.zip?ref_type=heads
wget https://git.unicaen.fr/open-source/docker/sygal-import-ws-image/-/blob/master/resources/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip?ref_type=heads
wget https://git.unicaen.fr/open-source/docker/sygal-import-ws-image/-/blob/master/resources/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip?ref_type=heads
sudo unzip -o /tmp/instantclient-basiclite-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/ && sudo unzip -o /tmp/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/ && sudo unzip -o /tmp/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/ && 
sudo unzip -o /tmp/instantclient-basiclite-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/ && sudo unzip -o /tmp/instantclient-sdk-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/ && sudo unzip -o /tmp/instantclient-sqlplus-linux.x64-18.5.0.0.0dbru.zip -d /usr/local/
sudo ln -sf /usr/local/instantclient_18_5 /usr/local/instantclient && sudo ln -sf /usr/local/instantclient/sqlplus /usr/bin/sqlplus
sudo echo 'instantclient,/usr/local/instantclient' | sudo pecl install ${OCI8_PACKAGE}
sudo sh -c "echo 'extension=oci8.so' > ${PHP_CONF_DIR}/fpm/conf.d/30-php-oci8.ini" && sudo sh -c "echo 'extension=oci8.so' > ${PHP_CONF_DIR}/cli/conf.d/30-php-oci8.ini" && sudo sh -c "echo '/usr/local/instantclient' > /etc/ld.so.conf.d/oracle-instantclient.conf" && sudo ldconfig
sudo service php8.0-fpm reload

cd /var/www/sygal-import-ws
composer install
rm -rf data/cache/*
/usr/bin/php ./public/index.php update-service-tables --verbose
```

- Rechargez le service PHP-FPM :
- Sur le serveur d'application, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`)
  puis lancez les commandes suivantes pour installer la nouvelle version :
```bash
service php7.4-fpm reload
git fetch && git fetch --tags && git checkout --force 3.0.0 && rm -rf vendor/* && bash install.sh
```

- Lancer la mise à jour des tables hébergeant les données importables (cela prend jusqu'à 1 minute) :
- Lancer la mise à jour des tables hébergeant les données importables (cela prend 1 ou 2 minutes) :
```bash
/usr/bin/php ./public/index.php update-service-tables --verbose
```
+28 −14
Original line number Diff line number Diff line
@@ -24,60 +24,74 @@ return [
    ],
    'services_to_entity_classes' => [
        'structure' => [
            \ImportData\V1\Entity\Db\Structure::class,
            //\ImportData\V1\Entity\Db\Structure::class,
            \ImportData\V2\Entity\Db\Structure::class,
            \ImportData\V3\Entity\Db\Structure::class,
        ],
        'etablissement' => [
            \ImportData\V1\Entity\Db\Etablissement::class,
            //\ImportData\V1\Entity\Db\Etablissement::class,
            \ImportData\V2\Entity\Db\Etablissement::class,
            \ImportData\V3\Entity\Db\Etablissement::class,
        ],
        'ecole-doctorale' => [
            \ImportData\V1\Entity\Db\EcoleDoctorale::class,
            //\ImportData\V1\Entity\Db\EcoleDoctorale::class,
            \ImportData\V2\Entity\Db\EcoleDoctorale::class,
            \ImportData\V3\Entity\Db\EcoleDoctorale::class,
        ],
        'unite-recherche' => [
            \ImportData\V1\Entity\Db\UniteRecherche::class,
            //\ImportData\V1\Entity\Db\UniteRecherche::class,
            \ImportData\V2\Entity\Db\UniteRecherche::class,
            \ImportData\V3\Entity\Db\UniteRecherche::class,
        ],
        'individu' => [
            \ImportData\V1\Entity\Db\Individu::class,
            //\ImportData\V1\Entity\Db\Individu::class,
            \ImportData\V2\Entity\Db\Individu::class,
            \ImportData\V3\Entity\Db\Individu::class,
        ],
        'doctorant' => [
            \ImportData\V1\Entity\Db\Doctorant::class,
            //\ImportData\V1\Entity\Db\Doctorant::class,
            \ImportData\V2\Entity\Db\Doctorant::class,
            \ImportData\V3\Entity\Db\Doctorant::class,
        ],
        'these' => [
            \ImportData\V1\Entity\Db\These::class,
            //\ImportData\V1\Entity\Db\These::class,
            \ImportData\V2\Entity\Db\These::class,
            \ImportData\V3\Entity\Db\These::class,
        ],
        'these-annee-univ' => [
            \ImportData\V1\Entity\Db\TheseAnneeUniv::class,
            //\ImportData\V1\Entity\Db\TheseAnneeUniv::class,
            \ImportData\V2\Entity\Db\TheseAnneeUniv::class,
            \ImportData\V3\Entity\Db\TheseAnneeUniv::class,
        ],
        'role' => [
            \ImportData\V1\Entity\Db\Role::class,
            //\ImportData\V1\Entity\Db\Role::class,
            \ImportData\V2\Entity\Db\Role::class,
            \ImportData\V3\Entity\Db\Role::class,
        ],
        'acteur' => [
            \ImportData\V1\Entity\Db\Acteur::class,
            //\ImportData\V1\Entity\Db\Acteur::class,
            \ImportData\V2\Entity\Db\Acteur::class,
            \ImportData\V3\Entity\Db\Acteur::class,
        ],
        'variable' => [
            \ImportData\V1\Entity\Db\Variable::class,
            //\ImportData\V1\Entity\Db\Variable::class,
            \ImportData\V2\Entity\Db\Variable::class,
            \ImportData\V3\Entity\Db\Variable::class,
        ],
        'origine-financement' => [
            \ImportData\V1\Entity\Db\OrigineFinancement::class,
            //\ImportData\V1\Entity\Db\OrigineFinancement::class,
            \ImportData\V2\Entity\Db\OrigineFinancement::class,
            \ImportData\V3\Entity\Db\OrigineFinancement::class,
        ],
        'financement' => [
            \ImportData\V1\Entity\Db\Financement::class,
            //\ImportData\V1\Entity\Db\Financement::class,
            \ImportData\V2\Entity\Db\Financement::class,
            \ImportData\V3\Entity\Db\Financement::class,
        ],
        'titre-acces' => [
            \ImportData\V1\Entity\Db\TitreAcces::class,
            //\ImportData\V1\Entity\Db\TitreAcces::class,
            \ImportData\V2\Entity\Db\TitreAcces::class,
            \ImportData\V3\Entity\Db\TitreAcces::class,
        ],
    ],
    'doctrine' => [