Page 1 of 2

Import von anderem s9y Blog

Posted: Mon Jun 29, 2015 2:45 pm
by u1amo01
Moin.

ich möchte meine zwei Blogs in eins zusammenführen. Deshalb wollte ich die Beiträge des Blogs mit weniger Einträgen importieren.

Ich habe einfach wagemutig unter "Wartung/Daten importieren" "Serendipity" ausgewählt, Datenbankname, Datenbankpräfix und Zeichensatz eingestellt, localhost und Datenbank Username gleichgelasssen (liegen beide auf dem gleichen uberspace), "Jetzt importieren" gedrückt, überraschend schnell eine Erfolgsmeldung bekommen - bloß wurde nichts importiert.

Beide Blogs laufen mit Serendipity 2.0.1 und PHP 5.6.10

Funktioniert die Importfunktion generell nicht? Habe ich was falsch ausgefüllt? Oder sollte ich den Import besser über die Datenbank mit phpMyAdmin per Export und Import machen?

Viele Grüße,
Klaus

Re: Import von anderem s9y Blog

Posted: Mon Jun 29, 2015 3:51 pm
by Timbalu
:) Sehr wagemutig!
Was an
Please do a test-run first if you are SQL-savvy. If you encounter any errors, save the message output you get - it will definitely help debugging!

This is NOT an importer meant for upgrading Serendipity. This importer assumes that both Serendipity installations use the same version.

It is strongly advised that you test this importer in an isolated environment first, do not use it on a production blog unless you made sure it works in a cloned installation
war nicht klar? :)

Tatsächlich soll soetwas damit sogar möglich sein ... http://board.s9y.org/viewtopic.php?f=10 ... 387#p80387 - Ich hätte schwören können, dass der Importer nur für ALT nach NEU entwickelt wurde. ;-)

Was sagt denn der verbose test run? (Und der isolated clone test?)

Re: Import von anderem s9y Blog

Posted: Mon Jun 29, 2015 4:02 pm
by u1amo01
Ach, schlimmstenfalls wäre alles zerschossen - dann hätte ich alles komplett neu aufgesetzt und die alten Beiträge kurz betrauert ;-)

Verbose test run meint "Starte Import Vorgang..." und dann gleich " Import erfolgreich abgeschlossen!"

Der clone Test sagt nix, weil - s. o.

Nachdem jetzt anscheinend gar nichts passiert ist, sollte ich die Frage vielleicht umformulieren bzw. neu stellen:

Ich habe zwei Blogs: http://u1amo01.de/blog und http://www.im-kino-gesehen.de

Die Beiträge von im-kino-gesehen möchte ich (wenn möglich) nach u1amo01 übertragen und dann das Kino-Blog löschen. Wie mache ich das am besten?

Re: Import von anderem s9y Blog

Posted: Mon Jun 29, 2015 4:10 pm
by Timbalu
Ja schon klar. Das hatte ich verstanden. Ich war nur komplett überrascht, dass Garvin für diesen Fall tatsächlich schon vorgesorgt hatte. Das ist nicht mal eben so trivial, wegen der IDs und ihrer Referenzen etc.
Für einen Debug müsstest du am besten auf Anweisung von Garvin warten. Immerhin ist auf seine Code Quality Verlass, so dass es bestimmt machtbar ist. Vielleicht hast du da auch nur irgendwelche timeouts, oder so.
Wie mache ich das am besten?
Das beschreibt Garvins Post doch ganz gut. Es ist eben relativ komplex, um es per Hand einfach nachzubilden. Beispielsweise allein die verlinkten Bilder in den Entries mit der richtigen (neuen) Media-ID zusammenzumergen scheint mir recht schwierig zu werden...

Re: Import von anderem s9y Blog

Posted: Tue Jun 30, 2015 11:20 am
by garvinhicking
Hi!

Sehr merkwürdig. Bitte bearbeite mal include/admin/importers/serendipity.inc.php.

Dann diese Zeile am Ende:

Code: Select all

        if (!is_array($this->data['targets'])) {
            return "No targets selected";
        }
ändern in:

Code: Select all

        echo "IN-DATA: <pre>". print_r($this->data, true) . "</pre>";
        if (!is_array($this->data['targets'])) {
            return "No targets selected";
        }
Welche PHP-Version hast du? Mir scheint dass evtl der Aufruf von :

Code: Select all

            $this->{'import_' . $target}($s9ydb);
bei Dir fehlschlägt. Oder hast du evtl im Dropdown wo man sagt was alles importiert werden soll keine Daten ausgewöhlt ("Groups, Authors, Entries, Media, Categories")?

VG,
Garvin

Re: Import von anderem s9y Blog

Posted: Tue Jun 30, 2015 10:43 pm
by u1amo01
Wie so oft sitzt das Problem vor der Tastatur. :oops: Wenn es ein Feld "Datenbank Passwort" gibt, sollte man da auch das Passwort eintragen. Fehlendes Passwort wird vom Import nicht angemeckert (vermutlich konnte sich diesen Fehler niemand vorstellen ...)

Der Verbose test run bricht nach einer Weile ab mit der Meldung
"An internal server error occurred. Please try again later."

Mach ich später.

Re: Import von anderem s9y Blog

Posted: Wed Jul 01, 2015 2:12 pm
by garvinhicking
Hi!

Ist nach dem Server error denn etwas passiert? Vermutlich dürften schon Teile importiert worden sein.

Schau mal ins Apache ErrorLog, da müsste ggf. eine genauere Fehlermeldung stehen wo das Script abbricht. Bei großen Datenbanken reicht das max_execution_time limit oder das RAM-Limit möglicherweise nicht aus!

LG,
Garvin

Re: Import von anderem s9y Blog

Posted: Wed Jul 01, 2015 9:27 pm
by u1amo01
Soweit ich sehen kann, wurde nichts importiert. Bei "verbose test run" hätte ich das auch nicht erwartet.

Der freundliche Support hat in die Logs geschaut und ein paar hundert Zeilen dieser Art gefunden:

Code: Select all

[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  mysql_select_db() expects parameter 2 to be resource, object given in /var/www/virtual/hyperion/html/blog/include/admin/import.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  mysql_select_db() expects parameter 2 to be resource, object given in /var/www/virtual/hyperion/html/blog/include/admin/import.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  mysql_select_db() expects parameter 2 to be resource, object given in /var/www/virtual/hyperion/html/blog/include/admin/import.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  mysql_select_db() expects parameter 2 to be resource, object given in /var/www/virtual/hyperion/html/blog/include/admin/import.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  mysql_select_db() expects parameter 2 to be resource, object given in /var/www/virtual/hyperion/html/blog/include/admin/import.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
[Wed Jul 01 18:28:22 2015] [warn] [client 46.5.128.143] mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/virtual/hyperion/html/blog/include/admin/importers/serendipity.inc.php on line 195
Ab sofort habe ich dann auch ein eigenes Logfile.

Re: Import von anderem s9y Blog

Posted: Thu Jul 02, 2015 11:46 am
by Timbalu
PHP 5.6.10 nutzt mysqli, nicht das veraltete mysql resource! Das muss in admin/import.inc.php in der nativeQuery() method überall geändert werden. Der zweite foreach error ist sicher nur eine Folge davon. Obwohl auch das Serendipity Import file die alte API benutzt. Da werden als auch Änderungen nötig sein.

Alle "mysql_*" Vorkommen in "mysqli_*" ändern.

Die Frage ist ja ob man das nicht gleich in und für die serendipity_* db resource connections umschreibt..?

Das ist im Übrigen ein "Bug" in 2.0.x und muss für 2.0.2 sicher auch noch für ein paar weitere Importer angepasst werden.

Re: Import von anderem s9y Blog

Posted: Thu Jul 02, 2015 12:10 pm
by garvinhicking
Ja, das stimmt, der Importer wurde nur für mysql-Funktionen, nicht für mysqli geschrieben.

Man kann serendipity_db_query nicht nutzen, weil man eine zweite COnnection braucht, und die serendipity_db_() funktionen aber allesamt auf die lokale Datenbank (=Ziel) und nicht die remote eDatenbank (=Quelle) zugreifen. Man müsste also eigentlich eine Möglichkeit schaffen, eine zweite Connection ressource zu haben oder ständig hin und her zu wechseln.

Das ist alles etwas aufwändig, weiß da auch gerade spontan nicht wie man es am sinnigsten angeht. Kurzum - gut funktionieren wird das nur wenn man mysql sowohl für Ziel als auch Quelldatenbank nutzt statt mysqli.

LG,
Garvin

Re: Import von anderem s9y Blog

Posted: Thu Jul 02, 2015 12:34 pm
by Timbalu
Da die alte mysql API deprecated ist und 2.0 sowieso schon PHP 5.3 erfordert, kann man doch auch alles ersteinmal auf mysqli umschreiben, oder? Einen eigenen DB layer kann man ja später noch hinzufügen. Oder muss man da die remote und local API usage strikt trennen?

Re: Import von anderem s9y Blog

Posted: Thu Jul 02, 2015 2:35 pm
by garvinhicking
Timbalu wrote:Da die alte mysql API deprecated ist und 2.0 sowieso schon PHP 5.3 erfordert, kann man doch auch alles ersteinmal auf mysqli umschreiben, oder? Einen eigenen DB layer kann man ja später noch hinzufügen. Oder muss man da die remote und local API usage strikt trennen?
Da hast Du recht, das ist das sinnvollste. Hab ich ganz vergessen dass mysqli ja quasi überall zur Verfügung stehen müsste.

Mittelfristig wär's aber natürlich auch nett nicht nur aus ner MySQL-DB importieren zu können, sondern auch aus den anderen Quellen die s9y als DB-System anbietet.

Remote und Lokal müssen wir schon trennen, weil der Import häufig mit anderen Zugangsdaten erfolgen muss als das lokale System...

Re: Import von anderem s9y Blog

Posted: Fri Jul 03, 2015 5:27 pm
by Timbalu
Hey Klaus ( @u1amo01 )

Ich habe das mal auf die neue mysqli API angepasst. Kannst du diese beiden files bei dir einmal ersetzen und deinen Versuch erneut starten? Eventuell musst du noch deine timeouts ein wenig strecken.
[Edit: links gelöscht.]
Sie sind schon raw. Also einfach abspeichern und ersetzen.

Re: Import von anderem s9y Blog

Posted: Fri Jul 03, 2015 11:32 pm
by u1amo01
Danke.

Hmm. Da kommt in Sekundenbruchteilen die Meldung
"Starte Import-Vorgang ... Import erfolgreich abgeschlossen!"

Passiert ist anscheinend gar nichts. Im Error-Log steht nichts.

Re: Import von anderem s9y Blog

Posted: Sat Jul 04, 2015 11:19 am
by Timbalu
Uff! Da hatte sich der Fehlerteufel eingeschlichen. Merkwürdig, dass er nicht gemeckert hat.

https://raw.githubusercontent.com/s9y/S ... rt.inc.php
https://raw.githubusercontent.com/s9y/S ... ty.inc.php