| Author |
Message |
Zimmi
knows MySQLDumper

Joined: 07 Mar 2005
Posts: 4

|
Posted:
2005-03-07, 21:44 Downgrade |
  |
Ich benutze beim Backup die Funktion Downgrade um zwischen
Mysql versionen 4.1 und 4.0 Daten zu tauschen.
Leider wird Timestamp nicht korrigiert
in version 4.0 ist die Definition:`lastmodified` timestamp(14) NOT NULL,
in Version 4.1 `lastmodified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
2. Beispiel:
version 4.0 `created` timestamp(14) NOT NULL,
version 4.1 `created` timestamp NOT NULL default '0000-00-00 00:00:00',
ist
dies Verhalten so gewollt oder wird das noch ergänzt??
Last edited by Zimmi on 2005-03-07, 21:44; edited 1 time in total
|
|
  |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
|
| |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16067
Location: Reichenberg bei Würzburg

|
Posted:
2005-03-07, 21:53 Re: Downgrade |
  |
Danke für den Hinweis.
Es kann durchaus sein, dass wir noch nicht alle Änderungen zwischen Version 4.0 und 4.1 entdeckt haben. Insofern sind wir dankbar für jeden sachdienlichen Hinweis.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
Zimmi
knows MySQLDumper

Joined: 07 Mar 2005
Posts: 4

|
Posted:
2005-03-07, 22:05 Re: Downgrade |
  |
nichts zu danken!
Ich war schon erfreut das es eine Funktion für das automatische Downgrade gibt, das
sich auch beim Timestamp etwas geändert hat ist mir erst
aufgefallen als die Datenbank einen SQL-Fehler gemeldet hat.
mfg
|
|
  |
 |
st@eff.en
MSD-God


Age: 50
Joined: 11 May 2004
Posts: 885
Location: Haan

|
Posted:
2005-03-07, 22:12 (No subject) |
  |
ok, ich bau das ein. Wenn Dir noch mehr auffällt (oder jemand anders) bitte Bescheid sagen
_________________ vg st@eff.en
sk-typo3
|
|
   |
 |
Zimmi
knows MySQLDumper

Joined: 07 Mar 2005
Posts: 4

|
Posted:
2005-03-07, 22:46 Re: Downgrade |
  |
das scheint es zumindestens bei meiner datenbank gewesen zu sein
wenn ich den timestamp m"manuell" ersetze kann ich das backup in die 4.0 version mit mysqldumper wieder einstellen
tolles tool!!!
|
|
  |
 |
st@eff.en
MSD-God


Age: 50
Joined: 11 May 2004
Posts: 885
Location: Haan

|
Posted:
2005-03-14, 19:12 (No subject) |
  |
so, ich habe die downgrade-routine angepasst:
Funktion DownGrade in inc/functions_global.php durch folgende ersetzen :
function DownGrade($s,$show=true)
{
if (MSD_NEW_VERSION && strpos(strtolower($s),"collate ") && ($show) ) {
return $s;
} else {
$tmp=explode(",",$s);
for($i=0;$i<count($tmp);$i++) {
$t=strtolower($tmp[$i]);
if(strpos($t,"collate ")) {
$tmp2=explode(" ",$tmp[$i]);
for($j=0;$j<count($tmp2);$j++) {
if(strtolower($tmp2[$j])=="collate") {$tmp2[$j]="";$tmp2[$j+1]="";$j++;}
}
$tmp[$i]=implode(" ",$tmp2);
}
if(strpos($t,"engine=")) {
$tmp2=explode(" ",$tmp[$i]);
for($j=0;$j<count($tmp2);$j++) {
//echo $j.": ".$tmp2[$j]."<br>";
if(substr(strtoupper($tmp2[$j]),0,7)=="ENGINE=") $tmp2[$j]="TYPE=".substr($tmp2[$j],7);
if(substr(strtoupper($tmp2[$j]),0,8)=="COLLATE=") $tmp2[$j]="";
if(substr(strtoupper($tmp2[$j]),0,8)=="CHARSET=" && strtoupper($tmp2[$j-1])=="DEFAULT") {$tmp2[$j-1]="";$tmp2[$j]="";}
}
$tmp[$i]=implode(" ",$tmp2);
}
if(strpos($t,"timestamp")) {
$tmp2=explode(" ",$tmp[$i]);
$end=false;
for($j=0;$j<count($tmp2);$j++) {
if($end) $tmp2[$j]="";
else
if(strtolower($tmp2[$j])=="timestamp") {$tmp2[$j]="TIMESTAMP(14) NOT NULL";$end=true;}
}
$tmp[$i]=implode(" ",$tmp2);
}
}
$t=implode(",",$tmp);
if(substr(rtrim($t),-1)!=";") $t=rtrim($t).";";
return $t;
}
}
_________________ vg st@eff.en
sk-typo3
|
|
   |
 |
Zimmi
knows MySQLDumper

Joined: 07 Mar 2005
Posts: 4

|
Posted:
2005-03-18, 12:42 Re: Downgrade |
  |
jaaa klappt ganz prima danke für die schnelle anpassung!
Eine frage habe ich noch, wenn man das script direkt per sql wieder einspielen möchte stößst es auf die folgende zeile
-- TABLE-INFO
-- Table | xxxxxxxxxxxxxxxx
--EOF TABLE-INFO
das --EOF TABLE-INFO
wird als fehler erkannt wohl wegen dem fehlendem Space zwischen
-- und EOF ???
|
|
  |
 |
st@eff.en
MSD-God


Age: 50
Joined: 11 May 2004
Posts: 885
Location: Haan

|
Posted:
2005-03-18, 12:46 (No subject) |
  |
da hast Du Recht, da fehlt ein Space
EOF ist nur ein interner Marker (EndOfFile) - wird nicht interpretiert.
Danke für den Hinweis
functions_dump.php, Zeile 83:
return "$mysql_commentstring Status:$t:$r:$mp:".$databases['Name'][$dump['dbindex']].":$kind:".MSD_VERSION.":".$dump['kommentar'].":EXTINFO\n".$t_zeile."$mysql_commentstring"." EOF TABLE-INFO\n$mysql_commentstring\n\n";
_________________ vg st@eff.en
sk-typo3
Last edited by st@eff.en on 2005-03-18, 12:48; edited 1 time in total
|
|
   |
 |
|
|