temp さんが書きました:
データの復旧方法については、大変面倒ですがデータの復旧と保持を最優先に考えて、以下の手順を一応推奨します。
# これは単に私がやるとすればこの方が早いし確実だと思う、という手順です。
# もちろん、この現状のフォーラムに修正を追加していくかたちでも最終的には同じような感じになるかと思いますので、その辺はお好みで作業されてください。
トピックタイトルが切れいているとかいった問題は手動で対象となるトピックを探していくより、元からまるごとやり直した方が確実だし早いかと思います。
#
http://mozillazine.jp/forums/viewtopic.php?p=6004#6004また、文字の途中で切れているトピックがあると今後のバックアップ時にも支障(今回ユーザデータがすべて文字化けしたのと同じようなことがまた起きる可能性)がありますから、その意味でも一度既存のデータで文字の途中で切れているデータを除去しておく方がよいと思うので、その意味でもやり直した方が良いと思うという意図です。
手順 5 の新旧フォーラムの差分を取る方法についてはもちろん、トピック ID やユーザ ID の新しいものを対象として追加すればよいと思います。両方同時稼働しているために ID が重複してしまっている部分は適度に個別処理(旧フォーラムは早急に新規投稿やユーザ登録を停止させた方がよいかと)。
最後に一応 phpbb++ にてテーブルスキーマを変更している差分を示しておきます。
# phpbb++ 同梱の diff からの抜粋です。
# 見ての通り元のデータ長をコメントに残しているので phpbb++ 同梱の mysql_schema.sql 見るだけでも分かります。
引用:
diff -r -u 2.0.21/phpBB-2.0.21/install/schemas/mysql_schema.sql 2.0.21/phpBB-2.0.21++/install/schemas/mysql_schema.sql
--- 2.0.21/phpBB-2.0.21/install/schemas/mysql_schema.sql 2006-06-09 16:29:42.000000000 +0900
+++ 2.0.21/phpBB-2.0.21++/install/schemas/mysql_schema.sql 2006-06-28 18:35:54.347625000 +0900
@@ -44,7 +44,8 @@
CREATE TABLE phpbb_groups (
group_id mediumint(8) NOT NULL auto_increment,
group_type tinyint(4) DEFAULT '1' NOT NULL,
- group_name varchar(40) NOT NULL,
+ # varchar(40) -> varchar(120)
+ group_name varchar(120) NOT NULL,
group_description varchar(255) NOT NULL,
group_moderator mediumint(8) DEFAULT '0' NOT NULL,
group_single_user tinyint(1) DEFAULT '1' NOT NULL,
@@ -73,7 +74,8 @@
#
CREATE TABLE phpbb_categories (
cat_id mediumint(8) UNSIGNED NOT NULL auto_increment,
- cat_title varchar(100),
+ # varchar(100) -> varchar(255)
+ cat_title varchar(255),
cat_order mediumint(8) UNSIGNED NOT NULL,
PRIMARY KEY (cat_id),
KEY cat_order (cat_order)
@@ -109,7 +111,10 @@
#
CREATE TABLE phpbb_disallow (
disallow_id mediumint(8) UNSIGNED NOT NULL auto_increment,
- disallow_username varchar(25) DEFAULT '' NOT NULL,
+ # varchar(25) -> varchar(80)
+ disallow_username varchar(80) default NULL,
+ disallow_subject varchar(255) default NULL,
+ disallow_message text default NULL,
PRIMARY KEY (disallow_id)
);
@@ -135,7 +140,8 @@
CREATE TABLE phpbb_forums (
forum_id smallint(5) UNSIGNED NOT NULL,
cat_id mediumint(8) UNSIGNED NOT NULL,
- forum_name varchar(150),
+ # varchar(150) -> varchar(255)
+ forum_name varchar(255),
forum_desc text,
forum_status tinyint(4) DEFAULT '0' NOT NULL,
forum_order mediumint(8) UNSIGNED DEFAULT '1' NOT NULL,
@@ -173,7 +179,8 @@
poster_id mediumint(8) DEFAULT '0' NOT NULL,
post_time int(11) DEFAULT '0' NOT NULL,
poster_ip char(8) NOT NULL,
- post_username varchar(25),
+ # varchar(25) -> varchar(80)
+ post_username varchar(80),
enable_bbcode tinyint(1) DEFAULT '1' NOT NULL,
enable_html tinyint(1) DEFAULT '0' NOT NULL,
enable_smilies tinyint(1) DEFAULT '1' NOT NULL,
@@ -195,7 +202,8 @@
CREATE TABLE phpbb_posts_text (
post_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
bbcode_uid char(10) DEFAULT '' NOT NULL,
- post_subject char(60),
+ # char(60) -> char(200)
+ post_subject char(200),
post_text text,
PRIMARY KEY (post_id)
);
@@ -241,7 +249,8 @@
#
CREATE TABLE phpbb_ranks (
rank_id smallint(5) UNSIGNED NOT NULL auto_increment,
- rank_title varchar(50) NOT NULL,
+ # varchar(50) -> varchar(150)
+ rank_title varchar(150) NOT NULL,
rank_min mediumint(8) DEFAULT '0' NOT NULL,
rank_special tinyint(1) DEFAULT '0',
rank_image varchar(255),
@@ -268,7 +277,8 @@
# Table structure for table `phpbb_search_wordlist`
#
CREATE TABLE phpbb_search_wordlist (
- word_text varchar(50) binary NOT NULL default '',
+ # varchar(50) -> varchar(150)
+ word_text varchar(150) binary NOT NULL default '',
word_id mediumint(8) UNSIGNED NOT NULL auto_increment,
word_common tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (word_text),
@@ -332,7 +342,8 @@
#
CREATE TABLE phpbb_smilies (
smilies_id smallint(5) UNSIGNED NOT NULL auto_increment,
- code varchar(50),
+ # varchar(50) -> varchar(100)
+ code varchar(100),
smile_url varchar(100),
emoticon varchar(75),
PRIMARY KEY (smilies_id)
@@ -438,7 +449,8 @@
CREATE TABLE phpbb_topics (
topic_id mediumint(8) UNSIGNED NOT NULL auto_increment,
forum_id smallint(8) UNSIGNED DEFAULT '0' NOT NULL,
- topic_title char(60) NOT NULL,
+ # varchar(60) -> varchar(200)
+ topic_title char(200) NOT NULL,
topic_poster mediumint(8) DEFAULT '0' NOT NULL,
topic_time int(11) DEFAULT '0' NOT NULL,
topic_views mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
@@ -478,7 +490,8 @@
CREATE TABLE phpbb_users (
user_id mediumint(8) NOT NULL,
user_active tinyint(1) DEFAULT '1',
- username varchar(25) NOT NULL,
+ # varchar(25) -> varchar(80)
+ username varchar(80) NOT NULL,
user_password varchar(32) NOT NULL,
user_session_time int(11) DEFAULT '0' NOT NULL,
user_session_page smallint(5) DEFAULT '0' NOT NULL,
@@ -489,7 +502,8 @@
user_timezone decimal(5,2) DEFAULT '0' NOT NULL,
user_style tinyint(4),
user_lang varchar(255),
- user_dateformat varchar(14) DEFAULT 'd M Y H:i' NOT NULL,
+ # varchar(14) -> varchar (40)
+ user_dateformat varchar(40) DEFAULT 'd M Y H:i' NOT NULL,
user_new_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
user_unread_privmsg smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
user_last_privmsg int(11) DEFAULT '0' NOT NULL,