#!/usr/bin/env escript % coding: utf-8 % Executé sur le serveur après la copie des fichiers lors de la mise en production. % Recharge les modules de euphorik et met à jour la BD. % TODO : construire le nom du noeud en fonction du nom de l'host hote() -> '@overnux'. % le premier argument est le nom du noeud est peut valoir : % - yaws : noeud de production % - yaws_dev : noeud de pre-production main([Nom_node]) when Nom_node =:= "yaws"; Nom_node =:= "yaws_dev" -> Node = list_to_atom(Nom_node ++ atom_to_list(hote())), net_kernel:start([flynux, shortnames]), io:format("rechargement des modules..~n"), rpc:call(Node, euphorik_daemon, reload_euphorik, []), if Nom_node =:= "yaws_dev" -> copier_bd(Node); true -> true end, io:format("mise à jour de la BD..~n"), rpc:call(Node, euphorik_bd_admin, update, []); main(_) -> io:format("Usage : mise_en_prod.erl "), halt(1). % Copie la bd du noeud de production copier_bd(Node) -> io:format("Copie de la BD de production vers le noeude pre-production~n"), Fichier = "/tmp/backup_ek_tmp", Fichier2 = "/tmp/backup_ek_tmp2", rpc:call(yaws@overnux, mnesia, backup, [Fichier]), rpc:call(Node, euphorik_bd_admin, change_node_name, [yaws@overnux, yaws_dev@overnux, Fichier, Fichier2]), rpc:call(Node, mnesia, restore, [Fichier2, [{default_op, recreate_tables}]]), rpc:call(yaws@overnux, file, delete, [Fichier]), rpc:call(Node, file, delete, [Fichier2]).