Installation RBS Change : Transfert mode test en production

  • 81615.1

    04/11/2013 10:26


    edwige.lr@wanadoo.fr
    Rang : Adepte
    Bonjour,

    Quelle est la procédure de transfert d'un site sur serveur en mode test vers serveur en mode de production?

    par avance merci
  • 81615.2 en réponse à 81615.1 écrit par edwige.lr@wanadoo.fr

    04/11/2013 15:19


    Mathias
    Rang : Expert
    La procédure peut être différente en fonction de votre cas :
    cas 1 / le site de test doit il être copié en production (code spécifique / base de données / images) + les documents "ecommerce" créés lors des tests (clients / commandes etc...) doivent être supprimés ?
    cas 2 / juste le code spécifique doit être transféré, et du coup, on repart sur un projet vierge de données en production ?

    Mathias

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 81615.3 en réponse à 81615.2 écrit par Mathias

    04/11/2013 16:20


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Les deux possibilités existent, mais dans les deux cas, vous devrez jouer un minimum avec la commande change.php et modifier le fichier profile afin de permettre le choix du bon fichier de configuration en fonction des environnements.

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 81615.4 en réponse à 81615.1 écrit par edwige.lr@wanadoo.fr

    04/11/2013 16:32


    edwige.lr@wanadoo.fr
    Rang : Adepte
    Bonjour,

    Merci pour votre réponse.

    Le cas1:
    Comment transférer un site personnalisé et configuré en mode test vers un hébergement en mode production.
    Faut-il transférer tous les fichiers et répertoires? la base de donnée? etc..

    Dans l'attente, cordialement
  • 81615.5 en réponse à 81615.4 écrit par edwige.lr@wanadoo.fr

    04/11/2013 18:41


    Mathias
    Rang : Expert
    Je pars du principe que vous installez vos projets en ligne de commande.
    Je vous donne la procédure que j'utilise sur mes projets, libre à vous de l'adaptez selon vos spécificités ou selon des corrections éventuelles de l'éditeur ;)
    Donc pour basculer un projet complet d'un environnement à un autre il faut suivre les étapes suivantes :

    1 / Avoir une configuration par environnement :
    Le wiki explique le fonctionnement des fichiers de configuration et comment les utiliser.
    Au final, vous devez avoir les fichiers de configuration suivants :
    • config/project.xml (configuration pour tous les environnements)

    • config/project.local.xml (configuration pour l'environnement local uniquement)

    • config/project.prod.xml (configuration pour l'environnement de prod uniquement)

    C'est le fichier profile à la racine de chaque environnement qui contiendra la valeur du fichier de configuration a utiliser (local ou prod)
    PS : à savoir que les libellés "local" et "prod" sont ceux que j'utilise mais leur choix est libre.

    2 / Exporter le code de l'environnement local :
    Pour cela, il faut conserver les dossiers/fichiers suivants :
    config/*
    modules/module-specifique/*
    override/*
    themes/*
    change.properties
    change.xml
    index.php
    profile

    Ce sont typiquement les dossiers/fichiers à ajouter à votre outils de versionning de code.

    3/ exporter les données de l'environnement local :

    • Faire un dump de la base de données mysql

    • Conserver les dossiers medias/orginal/* et securemedia/original/* (ici ce sont les medias uploadés via le backoffice et non ceux de votre thème. Ils sont considérés comme des "données", car ils sont référencés en base de données)



    Une fois que vous avez suivi ces 3 étapes sur l'environnement local, il faut désormais passer sur l'environnement de production.

    Après avoir fait le setup de votre environnement (prérequis techniques + vhost), il faut :

    4 / Initialiser un projet avec le code spécifique mais sans les données :
    • copier le code de l'étape2 dans le répertoire du projet ou importez le de votre outil de versionning de code

    • Modifier le fichier change.properties avec les nouvelles valeurs liées au nouvel environnement (par contre conservez pour l'instant l'entrée "DEVELOPMENT_MODE" identique à celle de votre environnement local, on le changera si nécessaire à la fin de la procédure).
    • Faire le lien symbolique vers le repository du framework :
      ln -s ~/path/to/repository-3.X.X/ ~/path/to/project/folder framework

    • Créer la base de données paramètrée dans le fichier config/project.prod.xml

    • Lancer la création du projet :
      php framework/bin/change.php create-new-project <projectName>

    Désormais, vous devez avoir le squelette de votre projet de production, mais il reste à ajouter les données de votre projet réalisé en environnement de test (ou local).

    5/ Implémenter les données du projet
    Pour la base de données :
    • Supprimez la base de données créée

    • Re-créez la base de données et importez les données de l'environnement de test (ou local)


    Pour les medias :
    • Supprimez les dossiers : media/formatted / media/frontoffice media/original et copiez votre dossier media/orginal provenant de votre environnement local

    • Si vous avez des securemedia, supprimmez le dossier securemedia/original et remplacez le par le votre provenant de l'environnement local


    A cette étape, vous avez une base de données à jour et un code à jour, il vous faut désormais compiler le tout afin que tout soit bien à jour.

    Lancez les commandes suivantes :

    • Lancez la commande :
      php framework/bin/change.php clear-all

    • Lancez la commande :
      php framework/bin/change.php compile-all

    • Lancez la commande :
      php framework/bin/change.php init-webapp

    • Lancez la commande :
      php framework/bin/change.php set-site-url <websiteFQDN>
      (où websiteFQDN correspond au FQDN renseigné dans votre fichier config/project.prod.xml

    • Editez le fichier change.properties, et passer la valeur suivante à false :
      DEVELOPMENT_MODE=true


    Normalement, après tout ça, vous avez un projet en production qui possède le même code et la même base de données qu'en local.

    Attention :
    1/ RBS Change ne propose pas de mécanique vous permettant de supprimer les objets créés pendant vos tests (commandes, clients, factures, expeditions, etc.. etc...), il faut faudra en fonction des objets créés, faire un patch qui supprime ces objets.
    2/ Dans l'absolu, il serait plus propre de réaliser son projet de la sorte :
    - coder en local les développement spécifiques, sans pour autant créer les contenus finaux du site
    - basculer en environnement de recette (ou intégration), avant de commencer les tests, rédiger tous les contenus finaux jugés nécessaire pour les tests et faire une export de la bdd avant les tests.
    - réaliser les tests et publier les correctifs sur cet environnement
    - créer l'environnement de production a partir de la bdd "avant tests" et créer tous les contenus finaux.

    De cette manière, on ne pollue pas l'environnement de production avec les tests réalisés.
    Pour certains projets, il serait envisageable d'initialiser les contenus totalement via de l'import XML prévu par RBS Change, mais je pense que ça a du sens si l'on est dans le cadre d'une migration d'un projet existant vers RBS Change et que l'on code une "moulinette" transformant l'export de la bdd précédente en un ou plusieurs fichier XML d'import.

    N'hésitez pas si vous avez des questions / problèmes !

    Édité par Mathias 04/11/2013 20:58


    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 81615.6 en réponse à 81615.5 écrit par Mathias

    05/11/2013 10:08


    edwige.lr@wanadoo.fr
    Rang : Adepte
    Merci, je vais tester cette procédure avec retour d'expérience.

    Cela me fait penser d'ailleurs au cas d'un crash server??? je vais ouvrir un nouveau post pour cette question.

    merci encore
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1377 membres
Aucun membre connecté