PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Impex vB 3.7.3 -> vB 3.8.6



ReptiSpace
07.02.2011, 11:50
Hallo,

ich installiere für unseren Verein das Forum neu.
Wir möchten es nicht upgraden, da das aktuelle Forum (vB 3.7.3 Patch Level 1) nicht mehr rund läuft und eine Reihe von installierten Addons einfach nicht nachvollziehbar sind.
Daher haben wir uns entschieden zuerst vB 3.8.6 Patch Level 1 in einer neuen Datenbank neu zu installieren, alle Benutzer, Foren und Threads umzuziehen, die notwendigen Addons zu installieren und dann irgendwann später auf vB 4.x upzugraden.

Nun klappt der Test-Umzug mit Impex aber leider nicht.

Nach der Installation von Impex bekomme ich gleich beim ersten Punkt (Check and update database) folgende Fehlermeldung:


There seems to have been a problem with the database.

ImpEx Database error

mysql error: Invalid SQL: DESCRIBE filedata importfiledataid

mysql error: Table 'dbXXX.filedata' doesn't exist

mysql error number: 1146

Date: Monday 07th of February 2011 11:08:46 AM
Database: dbXXX
MySQL error:


In einem anderen Thread (http://www.vbulletin-germany.com/forum/showthread.php/52962-Impex-Problem?highlight=impex) fand ich als Problemlösung:


Lösche mal aus der Datei /impex/ImpExModule.php:


'23' => array('filedata' => 'importfiledataid'),
'24' => array('attachmentcategoryuser' => 'importfiledataid')


Wenn ich das mache, kommt aber folgendes:

Testing source against : vb_36 ::3.7.x
Valid found tables :
Possibly custom tables or incorrect prefix :
access NOT found.
adminhelp NOT found.
administrator NOT found.
adminlog NOT found.
adminmessage NOT found.
adminutil NOT found.
announcement NOT found.
announcementread NOT found.
attachment NOT found.
attachmentpermission NOT found.
attachmenttype NOT found.
attachmentviews NOT found.
avatar NOT found.
bbcode NOT found.
calendar NOT found.
calendarcustomfield NOT found.
calendarmoderator NOT found.
calendarpermission NOT found.
cpsession NOT found.
cron NOT found.
cronlog NOT found.
customavatar NOT found.
customprofilepic NOT found.
datastore NOT found.
deletionlog NOT found.
editlog NOT found.
event NOT found.
externalcache NOT found.
faq NOT found.
forum NOT found.
forumpermission NOT found.
forumread NOT found.
holiday NOT found.
icon NOT found.
imagecategory NOT found.
imagecategorypermission NOT found.
infraction NOT found.
infractiongroup NOT found.
infractionlevel NOT found.
language NOT found.
mailqueue NOT found.
moderation NOT found.
moderator NOT found.
moderatorlog NOT found.
passwordhistory NOT found.
paymentapi NOT found.
paymentinfo NOT found.
paymenttransaction NOT found.
phrase NOT found.
phrasetype NOT found.
plugin NOT found.
pm NOT found.
pmreceipt NOT found.
pmtext NOT found.
podcast NOT found.
poll NOT found.
pollvote NOT found.
post NOT found.
posthash NOT found.
postindex NOT found.
postparsed NOT found.
product NOT found.
productcode NOT found.
productdependency NOT found.
profilefield NOT found.
ranks NOT found.
regimage NOT found.
reminder NOT found.
reputation NOT found.
reputationlevel NOT found.
rssfeed NOT found.
rsslog NOT found.
search NOT found.
session NOT found.
setting NOT found.
settinggroup NOT found.
sigparsed NOT found.
sigpic NOT found.
smilie NOT found.
stats NOT found.
strikes NOT found.
style NOT found.
subscribeevent NOT found.
subscribeforum NOT found.
subscribethread NOT found.
subscription NOT found.
subscriptionlog NOT found.
subscriptionpermission NOT found.
tachyforumpost NOT found.
tachythreadpost NOT found.
template NOT found.
templatehistory NOT found.
thread NOT found.
threadrate NOT found.
threadread NOT found.
threadredirect NOT found.
threadviews NOT found.
upgradelog NOT found.
user NOT found.
useractivation NOT found.
userban NOT found.
userfield NOT found.
usergroup NOT found.
usergroupleader NOT found.
usergrouprequest NOT found.
usernote NOT found.
userpromotion NOT found.
usertextfield NOT found.
usertitle NOT found.
word NOT found.
If you have all red tables, i.e. none correct this could possible be your table prefix :
t_Emot
Failed Check database permissions and connection, or table prefix to ensure its correct

Ich muss ja zugeben, dass ich mich mit der Materie nicht besonders gut auskenne. ich bin reiner Anwender...
Also: Was mache ich falsch?

Meine ImpexConfig.php sieht wie folgt aus:

<?php
if (!defined('IDIR')) { die; }

#################################################################### |;
# vBulletin - Licence Number XXXXX
# ---------------------------------------------------------------- # |;
# Copyright ©2000ñ2011 Jelsoft Enterprises Ltd. All Rights Reserved. |;
# This file may not be redistributed in whole or significant part. # |;
# ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # |;
# http://www.vbulletin.com | http://www.vbulletin.com/license.html # |;
#################################################################### |;

####
#
# [ ZIEL - DATENBANK ]
#
# Mit den folgenden Daten kann ImpEx eine Verbindung zu Ihrer vBulletin 3
# Datenbank aufbauen, in die die Daten importiert werden sollen.
#
####

$impexconfig['target']['databasetype'] = 'mysql';
$impexconfig['target']['server'] = 'localhost';
$impexconfig['target']['user'] = 'dbXXX';
$impexconfig['target']['password'] = 'PWXXX';
$impexconfig['target']['database'] = 'dbXXX';
$impexconfig['target']['tableprefix'] = '';

####
#
# Wenn das Forenssystem, aus dem Sie Daten importieren mˆchten, eine
# Datenbank benutzt, setzen Sie 'sourceexists' auf true und geben Sie
# die Daten an, um zu der Datenbank eine Verbindung herstellen zu kˆnnen.
# Wenn die Quell-Daten nicht in einer Datenbank sind, setzen Sie
# 'sourceexists' auf false.
#
####

$impexconfig['sourceexists'] = true;

####
#
# [ QUELL - DATENBANK ]
#
# Dies ist die Datenbank des Forums, aus dem Sie Daten importieren mˆchten.
#
####

# mysql / mssql
$impexconfig['source']['databasetype'] = 'mysql'; // mysql ODER mssql
$impexconfig['source']['server'] = 'localhost';
$impexconfig['source']['user'] = 'db2XXX';
$impexconfig['source']['password'] = 'PW2XXX';
$impexconfig['source']['database'] = 'db2XXX';
$impexconfig['source']['tableprefix'] = '';

####
#
# ‹BERPR‹FUNG AUF DUPLIKATE
#
# Wenn einzigartige Import-IDs vorhanden sind, kann damit ¸berpr¸ft werden, ob
# Daten bereits importiert wurden. Bei einigen Importsystemen muss diese Einstellung
# auf false gesetzt werden, damit sie funktionieren.
#
# Z.B. yahoo_groups, YaBB 2.1, Ikonboard 3.1.5 (f¸r Anh‰nge)
#
####

define('dupe_checking', false);

###############################################################################
####
#
# ERWEITERTE EINSTELLUNGEN
#
# ƒndern Sie die folgenden Einstellungen nicht, wenn Sie einen normalen Import
# vornehmen mˆchten oder nicht wissen, was die Einstellungen bedeuten!
#
####

// Erweiterte Einstellungen zur Ziel-Datenbank
$impexconfig['target']['databasetype'] = 'mysql'; // augenblicklich wird nur mysql unterst¸tzt
$impexconfig['target']['charset'] = '';
$impexconfig['target']['persistent'] = false; // (true/false) Nutzung von mysql_pconnect

// Erweiterte Einstellungen zur Quell-Datenbank
$impexconfig['source']['charset'] = '';
$impexconfig['source']['persistent'] = false;

# language: Setzt die von ImpEx benutzte Sprache. Standard ist Englisch.
# pagespeed: Wartezeit in Sekunden, bis ein Pagerefresh durchgef¸hrt wird.

$impexconfig['system']['language'] = '/impex_language.php';
$impexconfig['system']['pagespeed'] = 1;

$impexconfig['system']['errorlogging'] = false;

###############################################################################
#### Falls die Umlaute von Foren/Themen/Beitr‰gen fehlerhaft importiert werden,
#### setzen Sie bitte die Einstellung 'use_utf8_encode' auf true.
#### Funktioniert es dann immer noch nicht, setzen Sie 'use_utf8_encode' bitte
#### wieder auf false und stattdessen 'use_utf8_decode' auf true.
###############################################################################

define('use_utf8_encode', false);
define('use_utf8_decode', false);

define('impexdebug', false);
define('emailcasesensitive', false);
define('forcesqlmode', false);
define('skipparentids', false);
define('shortoutput', false);
define('do_mysql_fetch_assoc', false);
define('step_through', false);
define('lowercase_table_names', false);
?>

Danke für Eure Hilfe,

Daniel

Mystics
07.02.2011, 12:13
Eins vorweg: Von der ImpEx-Lösung halte ich absolut nichts. ImpEx ist nicht dafür gedacht, um sich Upgrades zu ersparen. So zerschossen kann ein Forum überhaupt nicht sein, als das man ImpEx benötigt.

Es ist viel einfacher, eine "saubere" Installation zu bekommen:

Deinstalliere alle Add-ons und Plug-ins.


Erstelle eine neuen Style ohne Oberstyle, dies entspricht dem Original-Style:
Administrator-Kontrollzentrum -> Styles & Templates -> Styles verwalten -> [Neuen Style hinzufügen]


Lege diesen Style als Standard-Style fest (vBulletin-Einstellungen).


Verschiebe alle Dateien von vBulletin in einen Sicherungsordner (außer die Anhänge, falls diese im Dateisystem gespeichert werden).


Lade alle Dateien aus dem Original-Paket von vBulletin in das alte, leere Verzeichnis hoch.


Benenne die config.php.new in config.php um und trage wieder die richtigen Daten ein.


Führe das Upgrade über die /install/upgrade.php durch.


Zu ImpEx: Enthält deine alte Installation evtl. ein Tabellenpräfix? Siehe config.php von vBulletin.

cws
07.02.2011, 14:46
Ich hatte ursprünglich die gleiche Idee wie Du, für das Update auf 4.1.
Ich habe dann von Mike etwa dieselben Ratschläge erhalten und muss sagen, dass er völlig Recht hat.

Ich bin letztlich so vorgegangen:

1:1 Kopie von Forum und DB angelegt, auf Lauffähigkeit prüfen, Forum schließen, Update in der Kopie durchgeführt, URL auf die Kopie umgeleitet, forum geöffnet, alles chick.

Das hat prima funktioniert und hatte den Vorteil, dass ich jederzeit bei Problemen auf die alte Version zurück gehen konnte, also alles recht stressfrei war. Selbst wenn sich am ersten oder zweiten Tag ernste Probleme gefunden hätten, die alte Version ist noch da und man verliert ggf. "nur" wenige Beiträge aus den letzten Tagen/Stunden.

Das mit dem ImpEx klingt zwar praktisch ist es aber nicht.

ReptiSpace
08.02.2011, 10:55
Hallo,

danke für die Info.
Ich werde es in diesem Fall so machen.

Nur zur Sicherheit: Es werden alle User, Foren, Threads und Beiträge in der Datenbank gesichert, oder?

Viele Grüße,

Daniel

sammy1
08.02.2011, 11:06
Ja!

Einzigste Ausnahme wären deine Anhänge, sofern du sie nicht in der Datenbank speichern lässt.

ReptiSpace
08.02.2011, 11:12
Ja, da habe ich einen separaten Ordern "attachements" mit über 700 MB. Das müsste er wohl sein. ;-)

Ich werde zudem die Datenbanken mittels eines Backups in eine neue Datenbank sichern, da die alte DB mit einer Auslastung von 138% angezeigt wird... Dann machen wir das Forum nun zu und ziehen alle Dinge auf einmal gerade.

Mystics
08.02.2011, 14:00
Du musst beim Umzug/Kopieren nur aufpassen, dass der Pfad zu den Anhängen noch korrekt ist:
Administrator-Kontrollzentrum -> Anhänge -> Anhangs-Speicherart

Dort am besten nur den relativen Pfad angeben. D.h. wenn dein "attachments" Ordner dort liegt, wo auch "admincp" etc. ist, reicht als Verzeichnisangabe "attachments" (statt /var/www/domain.de/forum/attachments etc.).

Das solltest du auch vor dem Upgrade/kopieren ändern, da es ansonsten Probleme beim Upgrade geben wird (wenn er die Anhänge nicht findet).

ReptiSpace
08.02.2011, 14:09
Vielen Dank für den Hinweis! Das hätte mich ansonsten wohl in die Verzweiflung geführt. Ich habe es entsprechend geändert.
Gibt es noch etwas, das ich beachten muss?

Danke für die Hilfe,

Daniel

Mystics
08.02.2011, 15:03
Das gleiche gilt für die Album-Bilder bzw. generell alles, was du im Dateisystem speichern lässt.

Für das Testforum musst du auch die /includes/config.php entsprechend anpassen und vermutlich auch die "URL des Forums" und die Cookie-Einstellungen ändern:

Lade die Datei tools.php aus dem do_not_upload-Verzeichnis deines vBulletin-Pakets in dein admincp-Verzeichnis auf den Server hoch, und rufe die Datei im Browser auf. Falls du das install Verzeichnis gelöscht hast, musst du dieses vorher ebenfalls hochladen.

Setze dann mit der tools.php alle Cookie-Einstellungen zurück und ändere die URL.

Sonst fällt mir auf die Schnelle nichts ein.