source: spip-zone/_plugins_/migrateur/dev-by-http/migrateur/mig_bdd_source_make_and_get_dump_sql.php @ 88466

Last change on this file since 88466 was 88466, checked in by marcimat@…, 4 years ago

Le fichier n'est pas toujours présent.

File size: 1.7 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5
6/**
7 * Récupère la base de données source
8**/
9function migrateur_mig_bdd_source_make_and_get_dump_sql() {
10
11        $client = migrateur_client();
12        $reponse = $client->action('DumpDatabase');
13
14        if (!$reponse) {
15                migrateur_log("Échec de la sauvegarde");
16                return;
17        }
18
19        $fichier = $reponse['message']['data']['fichier'];
20        $hash    = $reponse['message']['data']['hash'];
21
22        migrateur_log("Sauvegarde effectuée en " .  $reponse['message']['data']['duree']);
23        migrateur_log("Fichier source " . $fichier . " (" .$reponse['message']['data']['taille_octets']  . ")");
24
25
26        migrateur_log("Récupération de la sauvegarde");
27
28        $reponse = $client->action('GetFile', array(
29                'fichier' => $fichier,
30                'hash' => $hash,
31        ));
32
33        if (!$reponse) {
34                migrateur_log("Échec de récupération du fichier");
35                return;
36        } 
37
38        migrateur_log("Récupération ok");
39
40        $file = $reponse['message']['data']['fichier'];
41
42        // decompresser si nécessaire
43        if (substr($file, -3, 3) == '.gz') {
44                migrateur_get_database_decompresser($reponse['message']['data']['chemin']);
45        }
46}
47
48
49function migrateur_get_database_decompresser($chemin) {
50        migrateur_log("Décompression du dump");
51        $futur = substr($chemin, 0, -3);
52        @unlink($futur); 
53
54        $destination = migrateur_infos();
55        $gunzip = $destination->obtenir_commande_serveur('gunzip');
56        if (!$gunzip) {
57                migrateur_log("! Erreurs de décompression : gunzip absent !");
58                return false;
59        }
60
61        spip_timer('gunzip');
62        exec("$gunzip $chemin", $goutput, $gerr);
63        $t = spip_timer('gunzip');
64
65        if ($gerr) {
66                migrateur_log("! Erreurs de décompression : $gerr");
67        } else {
68                migrateur_log("Décompression OK en $t");
69                $message = trim(implode("\n", $goutput));
70                if ($message) {
71                        migrateur_log($message);
72                }
73        }
74}
Note: See TracBrowser for help on using the repository browser.