Valider ca2251c3 rédigé par esj's avatar esj
Parcourir les fichiers

#1106, MAJ 1.9.2 --> 1.9.3: [10603] corrigerait l'erreur de 1.938 sur la table...

#1106, MAJ 1.9.2 --> 1.9.3: [10603] corrigerait l'erreur de 1.938 sur la table types_documents, mais le transfert du nom de l'extension dans la table spip_documents ne marchait pas, '''creer_base_types_doc''' faisant n'importe quoi sur une table déclarée à l'ancienne. Ce nouveau code de la maj1.938 (et abandon de l'appel systématique de creer_base_types_doc) résoud le pb pour le passage 1.9.2. vers 1.9.3, mais le pb des versions ayant exécuté l'ancien maj1.938 reste à résoudre proprement. Pour l'instant, il faut une intervention manuelle ou repartir d'une sauvegarde 1.9.2.
parent 08ccb1a0
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+3 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -33,13 +33,11 @@ function creer_base($serveur='') {

	foreach($tables_auxiliaires as $k => $v)
		$fcreate($k, $v['field'], $v['key'], false, false, $serveur);

	creer_base_types_doc($tables_principales['spip_types_documents'], $serveur);
}


// http://doc.spip.org/@creer_base_types_doc
function creer_base_types_doc($desc, $serveur='') {
function creer_base_types_doc($serveur='') {
	global $tables_images, $tables_sequences, $tables_documents, $tables_mime;
	// Init ou Re-init ==> replace pas insert

@@ -53,12 +51,13 @@ function creer_base_types_doc($desc, $serveur='') {
		      $titre = $tables_documents[$extension];
		    else  $titre = '';
		}

		$freplace('spip_types_documents',
			  array('mime_type' => $type_mime,
				'titre' => $titre,
				'inclus' => $inclus,
				'extension' => $extension),
			  $desc, $serveur);
			  '', $serveur);
	}
}
?>
+3 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -75,7 +75,7 @@ function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db,
		}
		spip_log("Creation des tables. Codage $charsetbase");
		creer_base($server_db); // AT LAST

		creer_base_types_doc($server_db);
		// memoriser avec quel charset on l'a creee
		if ($charset) {
			@sql_insert('spip_meta', "(nom, valeur, impt)", "('charset_sql_base', '".$charset['charset']."', 'non')", '', $server_db);
@@ -88,13 +88,14 @@ function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db,
	  // pour recreer les tables disparues au besoin
	  spip_log("Table des Meta deja la. Verification des autres.");
	  creer_base($server_db); 
	  $fupdateq = sql_serveur('updateq', $server_db);

	  $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db);

	  if ($r) $r = sql_fetch($r, $server_db);
	  $version_installee = !$r ? 0 : (double) $r['valeur'];
	  if (!$version_installee OR ($spip_version < $version_installee)) {
	    sql_updateq('spip_meta', array('valeur'=>$spip_version, 'impt'=>'non'), "nom='version_installee'", $server_db);
	    $fupdateq('spip_meta', array('valeur'=>$spip_version, 'impt'=>'non'), "nom='version_installee'", $server_db);
	    spip_log("nouvelle version installee: $spip_version");
	  }
	  // eliminer la derniere operation d'admin mal terminee
+16 −10
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -384,7 +384,7 @@ function maj_1_953()
{
	global $tables_principales;
	include_spip('base/create');
	creer_base_types_doc($tables_principales['spip_types_documents']);
	creer_base_types_doc();
}

$GLOBALS['maj'][1][953] = array(array('maj_1_953'));
@@ -420,20 +420,26 @@ if ($GLOBALS['meta']['version_installee'] > 1.950)
// il faut supprimer l'autoincrement avant de supprimer la PRIMARY KEY

$GLOBALS['maj'][1][938] = array(
	array('sql_alter', "TABLE spip_types_documents DROP `id_type`"),

# creer un champ plus informatif, et son index
	array('sql_alter', "TABLE spip_documents ADD `extension` VARCHAR(10) DEFAULT ''  NOT NULL "),
# recopier l'ancien champ dans le nouveau
	array('maj_1_938'),
# supprimer l'ancien champ et son index
	array('sql_alter', "TABLE spip_documents DROP INDEX `id_type`, DROP `id_type`"),
# le champ id_type devient superflu 
	array('sql_alter', "TABLE spip_types_documents DROP `id_type`"),
	array('sql_alter', "TABLE spip_types_documents ADD PRIMARY KEY (`extension`)")
	);
// pour ceux pour qui c'est trop tard:
// 
// mais faudrait trouver mieux
function maj_1_938_catastrophe ()
{
	spip_log("Verifier la colonne extension de la table spip_documents; si elle est toujours vide,  repartir d'une sauvegarde 1.9.2");
}

if ($GLOBALS['meta']['version_installee'] > 1.938)
	$GLOBALS['maj'][1][956] = array(
	array('sql_alter', "TABLE spip_types_documents DROP PRIMARY KEY"),
	array('sql_alter', "TABLE spip_types_documents DROP `id_type`"),
	array('sql_alter', "TABLE spip_types_documents DROP INDEX `extension`"),
	array('sql_alter', "TABLE spip_documents ADD `extension` VARCHAR(10) DEFAULT ''  NOT NULL "),
	array('sql_alter', "TABLE spip_types_documents ADD PRIMARY KEY (`extension`)")
	);
	$GLOBALS['maj'][1][956] = array(array('maj_1_938_catastrophe'));

// PG veut une valeur par defaut a l'insertion
// http://trac.rezo.net/trac/spip/changeset/10482