Migration vom MS SQL Server A nach MS SQL Server B

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
daniel_ch

Migration vom MS SQL Server A nach MS SQL Server B

Beitrag von daniel_ch »

Hallo

Ich habe gerade die PhpBB2 Datenbank auf dem MS SQL Server A (befindet sich auf dem Webserver) nach MS SQL Server B (befindet sich im Netzwerk) migriert.
Dabei musste ich auf dem Webserver nur noch DSN abändern, damit die auf MS SQL Server B zeigt und nicht wie bisher auf MS SQL A.

Nun Kann ich mein Forum öffnen und Beiträge anschauen. Auch bearbeiten von Beiträgen ist kein Problem. Das Problem entsteht wenn ich einen neuen Beitrag erfassen möchte. Dann erscheinen folgende Meldungen (wobei sehr wahrscheinlich nur die erste relevant wäre):

Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Der Wert NULL kann in Spalte 'topic_replies', Tabelle 'phpbb2.dbo.phpbb_topics' nicht eingefügt werden. Die Spalte lässt NULL-Werte nicht zu. INSERT schlägt fehl., SQL state 23000 in SQLExecDirect in c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php on line 154

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 452

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 453

Warning: Cannot add header information - headers already sent by (output started at c:\daten\phpbb2\phpbb_forum\db\mssql-odbc.php:154) in c:\daten\phpbb2\phpbb_forum\includes\page_header.php on line 454


Komisch ist, dass die Vorschau möglich ist (wird dabei etwas in die Datenbank geschrieben?)!

Scheinbar wird in die Spalte 'topic_replies' der Tabelle phpbb_topics ein NULL Wert geschrieben! Weiss jemand warum die betrefende Variable plötzlich keinen Wert hat?

Wie löse ich das Problem? Hab ich was bei der Migration vergessen?

Für jeden Hinweis, vielen Dank im Voraus.

PS: Eine Suche in diesem Forum brachte nichts. Scheinbar gab es solche Probleme bisher nicht!

Gruss
daniel aus der schweiz
MBullmann
Mitglied
Beiträge: 10
Registriert: 24.04.2003 16:08

Beitrag von MBullmann »

Ich weiß nur so viel das das Forum bei einem Abschicken Befehl den Topic schreibt was es bei einem Voransicht nicht macht.

Beim Bearbeiten verändert es nur die Werte entsprechend dem neu verändertem Topic. Dabei braucht das Forum keine neuen Werte legen da es diese ja schon hat.

Was der NULL Wert jedoch damit zu tun hat kann ich nicht beantworten.
Mein Server läuft auch auf Linux :lol:.
Gast

RE:

Beitrag von Gast »

Das hilft mir auch nicht weiter.

Nun hab ich im Code nachgeschaut. In der Datei:

posting.php (Hauptverzeichnis von PhpBB)

in der Zeilen: 520 bis 528 werden einige Variablen an die INSERT SQL Abfrage übergeben. Ich hab hier eine Auswertung gemacht und nur Titel und Topicinhalt sind bei mir gesetzt.

Hier noch der Auszug. Würde mich wundern ob bei euch das selbe rauskommt oder habt ihr doch z.B. den $username gesetzt.

Code: Alles auswählen

                        
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
$bbcode_uid = '';

echo $mode.":".$post_data.":".$bbcode_on.":".$html_on.":".$smilies_on.":".$error_msg.":".$username.":".$bbcode_uid.":".$subject.":".$message. ":".$poll_title.":".$poll_options.":".$poll_length;   
                    
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg,  $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
Zeile (ECHO) erzingt die Ausgabe der Variablen. Bei mir kommt folgendes raus:

newtopic:Array:1:0:1::::Titel der Testnachricht:das ist nur ein Test:::

Scheinbar liefert die HTTP_POST_VARS keine Werte für Username und andere Variablen!? Warum das?
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

also erstmal muss ich sagen, dass ich mit MSSQL Datenbanken keine Erfahrung habe, aber dein Fehler klingt mir so als ob die Struktur der Datenbank falsch übertragen wurde. Der Wert topic_replies wird nicht eingetragen bei der Themaerstellung. Der sollte einfach standardmäßig 0 sein. Überprüfe vielleicht mal ob du den Standardwert für das Feld topic_replies auf 0 festsetzen kannst. Per Datenbanktool.
Gast

RE :-)

Beitrag von Gast »

@Mister_X

Genau das ist es :-) !!!! Die Standardwerte wurden nicht gesetzt und ID wurde auch nicht inkrementiert.
Scheinbar habe ich beim Import nicht alles richtig aktiviert. Bei einem 2. Versuch heute ging alles wie gewollt. Jetzt kann ich auch neue Beiträge problemlos erstellen.

Vielen Dank für die Hilfe !

Gruss
aus der Schweiz
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“