
#  Migration d'une installation existante de ScoDoc  
Marche à suivre pour transférer les données d'un serveur ScoDoc déjà existant vers un autre. Cas d'usage typiques:

 * changement de machine physique
 * création d'un serveur de développement
 * Mise à jour majeure du système d'exploitation (exemple: passage de Debian 9 à Debian 10).


Toutes les données seront copiées: bases SQL, configurations, photos, archives, logs.


##  Principe 
Au lieu de mettre à jour le système Debian, il est préférable de réinstaller complètement un nouveau serveur. En effet, ScoDoc utilise certains composants qui ne sont pas fournis dans les versions adéquates par Debian. 

L'expérience montre qu'il est plus rapide de tout réinstaller sans se poser de questions. D'ailleurs, la plupart des installations étant sur des serveurs virtualisés, cette méthode est souvent plus simple et évite de toucher au serveur en production.

Le principe est donc:

 1. Installer un nouveau serveur Linux;
 2. Y installer ScoDoc ;
 3. Copier les données d'un serveur à l'autre (scripts fournis);
 4. Tester, puis le cas échéant couper l'ancien serveur et le remplacer par le nouveau.

> Note: Si vous maîtrisez les commandes Linux, connaissez Debian et souhaitez passer rapidement un serveur Debian 8 en Debian 9, vous pouvez essayer [UpgradeToDebNeuf](UpgradeToDebNeuf.md)



##  Marche à suivre détaillée 
###  Installation de Debian et ScoDoc 
 Voir les instructions ici: [GuideInstallDebianDix](GuideInstallDebianDix.md) (ou si votre système est encore en Debian 9: [GuideInstallDebianNeuf](GuideInstallDebianNeuf.md))



###  Copie des données d'un serveur à l'autre 
Il est important de suivre rigoureusement et pas à pas cette procédure:

 1. S'assurer que le serveur de départ est à jour (pour avoir le bon script de sauvegarde!): [voir ici](https://trac.lipn.univ-paris13.fr/projects/scodoc/wiki/MisesAJour)
 1. Enregistrer les données sur le serveur d'origine: lancer le script `save_scodoc_data.sh` (en tant qu'utilisateur `root` dans `/opt/scodoc/instance/Products/ScoDoc/config`). Ce script crée une archive (tgz) qui contient toutes les informations: bases de données SQL, données utilisateurs, photos, archives des documents, fichier de configuration.
 1. Copier le fichier (`.tgz`) obtenu sur la machine destination (par exemple en utilisant ssh ou une clé USB).
 1. Mettre à jour votre installation de destination (`./upgrade.sh`)
 1. Sur la machine destination, sur laquelle ScoDoc vient d'être installé, lancer (en tant qu'utilisateur `root` dans `/opt/scodoc/instance/Products/ScoDoc/config`) le script `restore_scodoc_data.sh <nom_fichier_archive>`
 1. Mettre à jour votre installation de destination (`./upgrade.sh`)  (oui, à nouveau, important pour assurer que les anciennes bases de données sont aussi mises à jour).
 1. Relancer ScoDoc (`/etc/init.d/scodoc start`) et tester.





