Import von anderem s9y Blog

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
u1amo01
Regular
Posts: 273
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Import von anderem s9y Blog

Post 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
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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?)
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
u1amo01
Regular
Posts: 273
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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?
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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...
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
u1amo01
Regular
Posts: 273
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
u1amo01
Regular
Posts: 273
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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?
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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...
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
u1amo01
Regular
Posts: 273
Joined: Fri Sep 28, 2007 3:55 pm
Location: Kurpfalz, Germany
Contact:

Re: Import von anderem s9y Blog

Post 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.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Import von anderem s9y Blog

Post 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
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Post Reply