データベースが1つしか使えないサーバーで複数のMTをインストールすると、データベースのテーブル名が同じになってしまうため、違うバージョンのMTをインストールしてもすべて同じデータを参照することになってしまい、正しくインストールできません。
…なので、その解決法をメモ代わりにおきます。
…なお、櫻井はデータベース等の知識はそんなにございませんし、この方法も知人から聞いたものですので、参考にする場合はくれぐれも≪自己責任≫で行ってください。
また、櫻井が使用したバージョンはMT3.38、4.27、5.01の3つです。
【MT3.38の場合】
lib/MT/ObjectDriver/DBI.pm
20行目
sub table_prefix { ‘mt‘ }
sub table_prefix { ‘mt3‘ }
– – – – – – – – – – – – – – – – – – – –
lib/MT/ObjectDriver/DBI/postgres.pm
87、89、95、164、185、322、334、336行目の計8箇所
mt_ となっている部分
mt3_ に変更する
– – – – – – – – – – – – – – – – – – – –
lib/MT/ObjectDriver/DBI/mysql.pm
108、110、117、227行目の計4箇所
mt_ となっている部分
mt3_ に変更する
= = = = = = = = = = = = = = = = = = = =
【MT4.27・5.01の場合】
lib/MT/ObjectDriver/Driver/DBI.pm
19行目
sub init {
~略~
$param{prefix} ||= ‘mt_‘;
~略~
}
sub init {
~略~
$param{prefix} ||= ‘mt5_‘;
~略~
}
– – – – – – – – – – – – – – – – – – – –
lib/MT/ObjectDriver/Driver/DBD/Legacy.pm
50行目
sub db_column_name {
~略~
$table =~ s{ \A mt_ }{}xms;
~略~
}
sub db_column_name {
~略~
$table =~ s{ \A mt5_ }{}xms;
~略~
}
– – – – – – – – – – – – – – – – – – – –
lib/MT/ObjectDriver/Driver/DBD/Pg.pm
139行目
return join ‘_’, ‘mt‘,
return join ‘_’, ‘mt5‘,
= = = = = = = = = = = = = = = = = = = =
以上です。
…ただ、MTのバージョンが異なる場合は該当箇所も多少異なる可能性がありますので、変更場所の行数はあくまでも目安だとお考えください。
なお、MTは個人1人1インストールまでと決まってますので、ブログのバージョンアップ時に新規インストールをして安全に作業を行いたいな…とかいう場合等にこの方法が役立つのではないかと思います。
ちなみに、WPの場合は「wp-config.php」に設定箇所があるので、そこを変更するだけでOKです。
$table_prefix = ‘wp_‘; (WP2.9.2なら64行目)