Fehler update.php auf 4.1

Fragen zur Installation von ConPresso 4 werden in diesem Forum diskutiert.
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Fehler update.php auf 4.1

Beitrag von Gandalf »

Hallo Forengemeinde,

wollte nun meine Version 4.0.9 auf 4.1.1 (respektive 4.1.2) updaten. Für die Anpassungen der Tabellenstruktur habe ich die update.php verwendet und stoße beim Anlegen der neuen Tabelle "cpo4_pagetemplates" auf einen Fehler:

Code: Alles auswählen

Upgrade
Aktualisiere Tabelle cpo4_news...

Aktualisiere Tabelle cpo4_permission...

Erzeuge Tabelle cpo4_pagetemplates...

Sorry, an error occured while processing this request.
Ich setze MySQL 4.0.18 und PHP 4.3.4 ein. Der Datenbankuser hat alle MySQL Rechte. Ein manuelles anlegen einer Tabelle ist funktionell. Steckt der Fehler evtl. in der Syntax:

Code: Alles auswählen

echo '<p>Erzeuge Tabelle ' . $dbPrefix . '_pagetemplates...</p>';
    $upgradeDB->query('CREATE TABLE ' . $dbPrefix . "_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', " .
          "user_id int(11) NOT NULL default '0',  pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', " .
          'PRIMARY KEY  (id)) ENGINE=MyISAM  DEFAULT CHARSET=latin1');
Wer hat ähnliche Erfahrung gemacht und könnte mir helfen?

Gruß gandalf
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Erst das hier lesen, danach handeln und dann nochmal melden:

http://community.conpresso.de/viewtopic ... 6010#26010
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Gandalf
ConPresso-Checker
Beiträge: 108
Registriert: 01.01.1970 02:00
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Beitrag von Gandalf »

der Wink mit dem Zaunpfahl....

Folgendes erhalte ich:

Code: Alles auswählen

Database error:
Invalid SQL: CREATE TABLE cpo4_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', user_id int(11) NOT NULL default '0', pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id)) ENGINE=MyISAM DEFAULT CHARSET=latin1 
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1' at line 1 (1064)
Das Problem liegt in ENGINE=... begründet, da dieser erst ab MySQL 5.x greift, muss hier noch TYPE=... verwendet werden. Wobei ISAM ja eh (meist) Default ist.
Hier das offizielle Statement:
Um ausdrücklich zu sagen, dass Sie eine MyISAM-Tabelle möchten, verwenden Sie die Tabellenoption ENGINE:
CREATE TABLE t (i INT) ENGINE = MYISAM;
Der ältere Begriff TYPE wird aus Gründen der Abwärtskompatibilität noch als Synonym für ENGINE akzeptiert, doch ENGINE ist der aktuelle Begriff, während TYPE mittlerweile veraltet ist.
Normalerweise ist eine ENGINE-Angabe für die MyISAM-Speicher-Engine unnötig. MyISAM ist ohnehin die Standard-Engine, es sei denn, die Standardeinstellung wurden geändert. Um in solchen Situationen ganz sicherzugehen, dass MyISAM verwendet wird, sollten Sie explizit die Option ENGINE verwenden.
Der workaround dazu:

Datei: update.php

Suchen nach:

Code: Alles auswählen

echo '<p>Erzeuge Tabelle ' . $dbPrefix . '_pagetemplates...</p>';
    $upgradeDB->query('CREATE TABLE ' . $dbPrefix . "_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', " .
          "user_id int(11) NOT NULL default '0',  pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', " .
          'PRIMARY KEY  (id)) ENGINE=MyISAM  DEFAULT CHARSET=latin1');
Ändern in:

Code: Alles auswählen

echo '<p>Erzeuge Tabelle ' . $dbPrefix . '_pagetemplates...</p>';
    $upgradeDB->query('CREATE TABLE ' . $dbPrefix . "_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', " .
          "user_id int(11) NOT NULL default '0',  pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', " .
          'PRIMARY KEY  (id)) TYPE=MyISAM  CHARSET=latin1');
Dann läuft das Script auch mit MySQL 4.x.

Gruß Gandalf
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hi Gandalf,

danke für den Hinweis. Ich habe das Script aktualisiert:

http://community.conpresso.de/viewtopic.php?p=26043

Balu
Bartels.Schöne
ConPresso Support & Development
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

Beitrag von hscha »

Hallo,
ich habe ein ähnliches Problem mit meinem Upgrade auch mit Balus Bugfix-update-Script:

Code: Alles auswählen

Aktualisiere Tabelle sk_cpo_news...

Aktualisiere Tabelle sk_cpo_permission...

Database error:
Invalid SQL: ALTER TABLE sk_cpo_permission ADD UNIQUE `user_id-rubric_id` (user_id , rubric_id)
Duplicate key name 'user_id-rubric_id' (1061)
ConPresso läuft hier auf einem 1und1-Server mit php 4.4.9 und mysql 4.0.
Über einen Tipp würde ich mich freuen...

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Da hast Du wohl schon mal eines der Update-Scripte gestartet oder versuchst eine 4.1.x auf 4.1.x upzudaten.

Ich würde den key in der Datenbank löschen, damit der Fehler verschwindet.

Daß er überhaupt erscheint, liegt an einem der genannten Gründe...

Das beste wäre erst mal die Backups wiederherzustellen und dann von vorne anzufangen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

Beitrag von hscha »

Ja, stimmt. Ich habe das Script einmal laufen lassen und musste erst den Bugreport einschalten. Beim ersten Mal ist das Script aber an der gleichen Stelle stecken geblieben.
Ein Datenbank-Backup wollte ich über mod_backup einspielen, ging aber nicht (siehe http://community.conpresso.de/viewtopic ... 6518#26518)...

Zum Glück läuft der Webauftritt noch. Hier scheint McMurphy wieder recht zu haben!

Grüße von
Horst
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

nächster fehler...

Beitrag von hscha »

Hallo Markus,
leider hat's noch nicht geklappt mit dem Datenbank-Update. Nach dem Datenbank-Restore bleibt das Script nun hier hängen:

Code: Alles auswählen

Erzeuge Tabelle sk_cpo_pagetemplates...

Database error:
Invalid SQL: CREATE TABLE sk_cpo_pagetemplates (id int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', user_id int(11) 

NOT NULL default '0', pagetemplate text NOT NULL, saved datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id)) TYPE=MyISAM DEFAULT 

CHARSET=latin1
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT 

CHARSET=latin1' at line 1 (1064)
Sorry! Ist mir richtig peinlich, dich nochmal zu fragen...

Gruß von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Kein Problem.

Dein Server scheint mit Character Set wirklich nix am Hut zu haben.

Ersetze alle Vorkommen von
DEFAULT CHARSET=latin1
mittels Suchen und Ersetzen durch nichts.

Wobei mich irritiert, daß der Server selbst (von dem kommt dieser String) eine solche Angabe macht, diese dann aber nicht versteht.

Oder handelt es sich um einen anderen Server???
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

Beitrag von hscha »

Nein, es ist derselbe Server!

Ich habe die Havariekette noch fortgesetzt. Nachdem ich den obigen Tipp (löschen von "DEFAULT CHARSET=latin1") angewandt hatte, lief das Update-Script durch. Anschließend habe ich die CPO4.1.2-Dateien hochgeladen und an die diversen Module angepasst.

Beim Start mit dem Upgrade passieren nun komische Sachen:
Die Artikel-Templates lassen sich nicht bearbeiten (die Template-Masken sind einfach leer).
Beim Aufruf einiger Rubriken per admin/articles.php erscheint die folgende Fehlermeldung:

Code: Alles auswählen

Database error:
Invalid SQL: SELECT nr FROM sk_cpo_news WHERE (sort_id=(SELECT MAX(sort_id) FROM sk_cpo_news WHERE artikel_archiv=0 AND rubric_id='9' ) OR sort_id=(SELECT MIN(sort_id) FROM sk_cpo_news WHERE artikel_archiv=0 AND rubric_id='9' ) ) AND artikel_archiv=0 AND rubric_id='9' ORDER BY sort_id DESC
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT MAX(sort_id) FROM sk_cpo_news WHERE artikel_archiv=0 AND (1064)
Die in den Templates mit mod_text veränderten Platzhalter werden im Frontend fehlerhaft angezeigt.

Ich schalte erstmal zurück auf CPO 4.0.10 und hoffe wiederum auf Tipps von dir :lol:

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Leider habe ich schlechte Nachrichten.

Deine mySQL-Version ist zu alt
http://community.conpresso.de/viewtopic.php?t=4359
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

Beitrag von hscha »

O.k., ich konnte beim Provider eine neue Datenbank mit mysql 5.0 anlegen und ein SQL-Dump importieren. Werde CPO 4.1.2 morgen weiter ausprobieren.

Einziges Problem bisher: In den Überschriften und sonstigen reinen TEXT-Ausgaben sind die Umlaute durch "?" ersetzt, was ich ziemlich lästig finde. Kann man das durch einen "Handgiff" ändern?

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Im phpmyadmin-Import (oder beim Restore mit BigDump) kannst Du das Character Set angeben.
Daran solltest Du experimentieren.
Vermutlich ist die neue UTF8, die alte aber Latin1, daher solltest Du beim Import Latin1 angeben. Oder auch umgekehrt.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 531
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 199 Mal
Danksagung erhalten: 17 Mal

Beitrag von hscha »

Danke! Das hat geholfen.
Nun besteht immer noch folgendes Problem: Auch mit der mysql-5.0-Datenbank werden die Artikeltemplates nicht angezeigt. Die Liste erscheint zwar, jedoch sind die Bearbeitungsmasken leer. Die Templates funktionieren im Frontend auch nicht richtig an den Stellen, wo mod_text zuwerke gegangen ist (mod_text ist nach Anleitung installiert).

Ist es möglich, dass das Upgradescript von 4.0.x auf 4.1.2 die mysql-4.0-Datenbank nicht richtig umgewandelt hat?

Sorry, ich hoffe, das ist das letzte Mal in diesem Thread...

Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Wie soll man das beantworten?

Du bist der einzige, der die Inhalte der Datenbank sehen kann.

Was steht denn da in der Template-Tabelle?

Was mich irritiert ist der Umstand, daß mod_text ja nur die Bearbeitung im Backend beeinflußt und auf die Platzhalter keinen Einfluß hat, sondern nur auf die Eingabemaske im Backend...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle