Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 1182 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1182 Rev 1259
1
<?php
1
<?php
2
/** Exemple lancement:
2
/** Exemple lancement:
3
 * /opt/lampp/bin/php -d memory_limit=3500M ~/web/eflore-projets/scripts/cli.php baseveg -a chargerTous
3
 * /opt/lampp/bin/php -d memory_limit=3500M ~/web/eflore-projets/scripts/cli.php baseveg -a chargerTous
4
*/
4
*/
5
 
5
 
6
class Baseveg extends EfloreScript {
6
class Baseveg extends EfloreScript {
7
 
7
 
8
 
8
 
9
 
9
 
10
 
10
 
11
	
11
	
12
	public function executer() {
12
	public function executer() {
13
		try {
13
		try {
14
			$this->initialiserProjet('baseveg');
14
			$this->initialiserProjet('baseveg');
15
			$cmd = $this->getParametre('a');
15
			$cmd = $this->getParametre('a');
16
			switch ($cmd) {
16
			switch ($cmd) {
17
				case 'supprimerTous' :
17
				case 'supprimerTous' :
18
					$this->supprimerTous();
18
					$this->supprimerTous();
19
					break;
19
					break;
20
				case 'chargerStructureSql' :
20
				case 'chargerStructureSql' :
21
					$this->chargerStructureSql();
21
					$this->chargerStructureSql();
22
					break;
22
					break;
23
				case 'chargerMetadonnees' :
23
				case 'chargerMetadonnees' :
24
					$this->chargerMetadonnees();
24
					$this->chargerMetadonnees();
25
					break;
25
					break;
26
				case 'chargerDonnees' :
26
				case 'chargerBaseveg' :
27
					$this->chargerDonnees();
27
					$this->chargerBaseveg();
28
					break;
28
					break;
29
				case 'verifierFichier' :
29
				case 'verifierFichier' :
30
					//cette étape met en avant les valeurs qui vont poser des problèmes (ontologies..)
30
					//cette étape met en avant les valeurs qui vont poser des problèmes (ontologies..)
31
					$this->verifierFichier();
31
					$this->verifierFichier();
32
					break;
32
					break;
33
				case 'supprimerOntologies' :
33
				case 'supprimerOntologies' :
34
					$this->supprimerOntologies();
34
					$this->supprimerOntologies();
35
					break;
35
					break;
36
				case 'chargerOntologies' :
36
				case 'chargerOntologies' :
37
					$this->chargerOntologies();
37
					$this->chargerOntologies();
38
					break;
38
					break;
39
				case 'chargerTous' :
39
				case 'chargerTous' :
40
					//$this->supprimerTous();
40
					//$this->supprimerTous();
41
					$this->chargerStructureSql();
41
					$this->chargerStructureSql();
42
					$this->chargerMetadonnees();
42
					$this->chargerMetadonnees();
43
					$this->chargerDonnees();
43
					$this->chargerBaseveg();
44
					$this->chargerOntologies();
44
					$this->chargerOntologies();
45
					break;
45
					break;
46
				default :
46
				default :
47
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
47
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
48
			}
48
			}
49
		} catch (Exception $e) {
49
		} catch (Exception $e) {
50
			$this->traiterErreur($e->getMessage());
50
			$this->traiterErreur($e->getMessage());
51
		}
51
		}
52
	}
52
	}
53
	
53
	
54
	
54
	
55
	private function  getClasseBasevegVerif() {
55
	private function  getClasseBasevegVerif() {
56
		$conteneur = new Conteneur();
56
		$conteneur = new Conteneur();
57
		require_once dirname(__FILE__)."/BasevegVerif.php";
57
		require_once dirname(__FILE__)."/BasevegVerif.php";
58
		$verif = new BasevegVerif($conteneur,'baseveg');
58
		$verif = new BasevegVerif($conteneur,'baseveg');
59
		return $verif;
59
		return $verif;
60
	}
60
	}
61
	
61
	
62
	private function verifierFichier() {
62
	private function verifierFichier() {
63
		$verif = $this->getClasseBasevegVerif();
63
		$verif = $this->getClasseBasevegVerif();
64
		$verif->verifierFichier(Config::get('chemins.donnees'));
64
		$verif->verifierFichier(Config::get('chemins.donnees'));
65
	}
65
	}
66
	
66
	
67
	private function supprimerOntologies() {
67
	private function supprimerOntologies() {
68
		$chemin = Config::get('chemins.ontologies');
68
		$chemin = Config::get('chemins.ontologies');
69
		$table = Config::get('tables.ontologies');
69
		$table = Config::get('tables.ontologies');
70
		$requete = "TRUNCATE TABLE $table ;";
70
		$requete = "TRUNCATE TABLE $table ;";
71
		$this->getBdd()->requeter($requete);
71
		$this->getBdd()->requeter($requete);
72
	}
72
	}
73
	
73
	
74
	private function chargerOntologies() {
74
	private function chargerOntologies() {
75
		$chemin = Config::get('chemins.ontologies');
75
		$chemin = Config::get('chemins.ontologies');
76
		$table = Config::get('tables.ontologies');
76
		$table = Config::get('tables.ontologies');
77
		$requete = "LOAD DATA INFILE '$chemin' ".
77
		$requete = "LOAD DATA INFILE '$chemin' ".
78
				"REPLACE INTO TABLE $table ".
78
				"REPLACE INTO TABLE $table ".
79
				'CHARACTER SET utf8 '.
79
				'CHARACTER SET utf8 '.
80
				'FIELDS '.
80
				'FIELDS '.
81
				"	TERMINATED BY '\t' ".
81
				"	TERMINATED BY '\t' ".
82
				"	ENCLOSED BY '' ".
82
				"	ENCLOSED BY '' ".
83
				"	ESCAPED BY '\\\' "
83
				"	ESCAPED BY '\\\' "
84
		;
84
		;
85
		$this->getBdd()->requeter($requete);
85
		$this->getBdd()->requeter($requete);
86
	}
86
	}
87
 
87
 
88
	protected function chargerDonnees() {
88
	protected function chargerBaseveg() {
89
		$table = Config::get('tables.donnees');
89
		$table = Config::get('tables.donnees');
90
		$requete = "LOAD DATA INFILE '".Config::get('chemins.donnees')."' ".
90
		$requete = "LOAD DATA INFILE '".Config::get('chemins.donnees')."' ".
91
				"REPLACE INTO TABLE $table ".
91
				"REPLACE INTO TABLE $table ".
92
				'CHARACTER SET utf8 '.
92
				'CHARACTER SET utf8 '.
93
				'FIELDS '.
93
				'FIELDS '.
94
				"	TERMINATED BY '\t' ".
94
				"	TERMINATED BY '\t' ".
95
				"	ENCLOSED BY '' ".
95
				"	ENCLOSED BY '' ".
96
				"	ESCAPED BY '\\\'";
96
				"	ESCAPED BY '\\\'";
97
		$this->getBdd()->requeter($requete);
97
		$this->getBdd()->requeter($requete);
98
	}
98
	}
99
	
99
	
100
	protected function chargerMetadonnees() {
100
	protected function chargerMetadonnees() {
101
		$contenuSql = $this->recupererContenu(Config::get('chemins.metadonnees'));
101
		$contenuSql = $this->recupererContenu(Config::get('chemins.metadonnees'));
102
		$this->executerScripSql($contenuSql);
102
		$this->executerScripSql($contenuSql);
103
	}
103
	}
104
 
104
 
105
	private function supprimerTous() {
105
	private function supprimerTous() {
106
		$requete = "DROP TABLE IF EXISTS  baseveg_meta,  baseveg_ontologies, baseveg_v".Config::get('version');
106
		$requete = "DROP TABLE IF EXISTS  baseveg_meta,  baseveg_ontologies, baseveg_v".Config::get('version');
107
		$this->getBdd()->requeter($requete);
107
		$this->getBdd()->requeter($requete);
108
	}
108
	}
109
 
109
 
110
}
110
}
111
?>
111
?>