Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 4
Seite [1]
testerjoe


Wannabe poster




Beiträge: 23
# Thema - 28.07.2010 um 22:02 Uhr
so,
ich muss jetzt zwangsweise eine alte cs-webseite von der Version 2008.2.1 auf die aktuelle updaten. Das Problem dabei ist, dass das System nach einem Umzug mit PHP5 nicht mehr läuft. Ich dachte daran einfach ein neues cs aufzusetzen und die Datenbank wieder einzuspielen. Dafür muss ich aber die Datenbank erst auf die aktuelle Version updaten. Die update.sqls sind ja im paket dabei, aber leider mit einigen cs-feldbezeichnern...
Kann mir mal einer eine normale sql machen, mit der ich die Datenbank per phpmyadmin auf die neue 2010.rc2 updaten kann??


Zuletzt editiert von testerjoe am 28.07.2010 um 22:03 Uhr (2x Editiert)
Inaktiv
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 1 - 28.07.2010 um 22:25 Uhr
{pre} kann überall mit dem sql tabellen prefix ersetzt werden.

weiteres findet sich hier in der funktion als ersetzung für mysql:

http://trac.csphere.eu/csp/browser/trunk/system/database/mysql.php#L156


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Tom08 ClanSphere Team

Supporter
Supporter



Herkunft: Daheim
Beiträge: 2923
# Antwort: 2 - 28.07.2010 um 22:26 Uhr
Du musst nacheinander alle SQLs von deiner Version (2008.2.1) bis zur aktuell verwendeten ausführen.

Dies geht eigentlich nur über System -> Datenbank -> Import.

Um das Update direkt in phpmyadmin durchführen zu können, musst du in allen Update-Dateien das {pre} durch deinen Präfix ersetzen.

Wenn du in phpmyadmin guckst, wirst du sehen, dass die Tabellen z.B. cs_board, cs_news heißen.
cs ist in diesem Fall der Präfix, mit dem du {pre} ersetzen musst.

lG


------------------
Bei Problemen mit Code von mir bitte eine Private Nachricht an mich


Inaktiv
|
testerjoe
Thread-Ersteller


Wannabe poster




Beiträge: 23
# Antwort: 3 - 29.07.2010 um 09:20 Uhr
Datenbank -> Import geht ja leider nicht..

Und das mit dem {pre} (Präfix) währe ja noch einfach, doch giebt es in den ubdate-sql's noch weitere Ersetzungen z.B. {serial} und {engine} !

dank hajo habe ich folgendes gefunden:
function cs_sql_replace($replace) {
157
158 global $cs_db;
159 #engine since 4.0.18, but collation works since 4.1.8
160 $version = mysql_get_server_info($cs_db['con']) or cs_error_sql(__FILE__, 'cs_sql_replace', mysql_error($cs_db['con']));
161 $myv = explode('.', $version);
162 settype($myv[2], 'integer');
163 if($myv[0] > 4 OR $myv[0] == 4 AND $myv[1] > 1 OR $myv[0] == 4 AND $myv[1] == 1 AND $myv[2] > 7)
164 $engine = ' ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci';
165 else
166 $engine = ' TYPE=MyISAM CHARACTER SET utf8';
167
168 $replace = str_replace('{optimize}','OPTIMIZE TABLE',$replace);
169 $replace = str_replace('{serial}','int(8) unsigned NOT NULL auto_increment',$replace);
170 $replace = str_replace('{engine}',$engine,$replace);
171 return preg_replace("=create index (\S+) on (\S+) (\S+)=si",'ALTER TABLE $2 ADD KEY $1 $3',$replace);
172 }


Die str_replace sind soweit klar, doch kann mir mal einer erklähren was das preg_replace macht??


Zuletzt editiert von testerjoe am 29.07.2010 um 09:27 Uhr (1x Editiert)
Inaktiv
|
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 4 - 29.07.2010 um 17:18 Uhr
das preg_replace ändert "create index" sql befehle in die für mysql wohl bessere "alter table" methode um, die allerdings vom sql standard abweicht


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Antworten: 4
Seite [1]


Sie müssen sich registrieren, um zu antworten.