PR

phpmyfaqのデータベース文字化けを直す(4)

ちょっと頭を冷やす。
そういえば、phpmyfaq自体にもバックアップ機能が申し訳程度についている(失礼)
これを使ってみよう。

新規に2.5.5を構築して、今ある2.5.5のバックアップデータ(読める)を流しこんでみる。
すると、データベースでは化けて…という状態になってしまう。解決できない。

バックアップデータをSQLとしてphpMyAdminからクエリを送ると読めるのだがいろいろ問題もあるのでこれは最後から2番目くらいの手段にしておく。面倒なので。。。しかし、データを1つずつコピーアンドペーストするという最後の手段よりはおそらくましだ(2.6.1にはバージョンの違いもあって、バックアップデータのリストア処理は受け付けてくれない)

スポンサードリンク

mysqlbumpを提供するクラスなどもあるらしい。直接dumpを実行すると化けるのでこれを通したら解決するのかなーとか淡い期待。

仕方なく、2.5.5のバックアップ機能で出力したファイルを2.6.1の新規状態のデータベースに日本語を含む場所に限ってphpMyAdminからバックアップファイルのSQLを投入した。とりあえずこれで良い・・・と思ったらそうでもないらしい。当たり前といえばそうなのだが、2.6.1から使われているデータベース内に記録されているConfigureの値が参照できないとか項目が無いとか。。。うーん。

今のところこのやり方で乗り切るしかないのかな。うーん・・・・。

どうでもいいんだけど、.htaccessを書き換える必要があって、そうしたら500エラーが出まくり。でもでないものある。今まで使っていたのさえ拒否る。なんだ?すごーーーーーーーーく長く奮闘した。ムカついてFTPではなくSSHで作業したら、受け付けた。なんだ?何時間も無駄にした。。。どこかで作業を間違ったのか今までの手をつけていないはずの稼働中のシステムからもエラーが出るようになってしまった。仕方なくphp.iniを設置してerror_reportingをOffにした。時間に迫られてとりあえずここまでかな。今日は・・・。つか、テンパってるからというのもあるけど、エラーのうち、テンポラリファイルが作成できないってのがあって、これは.htaccessでPHPがCGIとして機能していないからだけだと思った。だが、読んでみるとデータベースのconfigureに関するものでもあった。気がつくのに随分かかった。ついでにサーバーによっては/tmpへの書き込みを禁止しているものもあるという事も知った。

(以下は数日経ってから追記)

で、上記はいまでもつづいているようだ。なんだろう?

で、結論。

というか、しばらく触れなかった間にさらにバージョンアップしていて、PDFの問題とかAjaxの問題とか解決したぜ~とか書いてあった。別の記事にコメントくれた人みたいな優秀な人達が改善方法を本家に伝えたんだろうね。ありがたい。//コメント嬉しかったけど、今回はデータベース自体が化けてる・・・のに正常に動くと言う「正常な異常!?」を直すことが目的なのです(汗)「直せます」ってのは嬉しかった。私は挫折しましたが・・・。ちなみにこのバージョンではPDFとタグのAjaxなどが改善されてた。

  1. 現状のバックアップを取る
    1. FTPで稼働中のファイルをすべてバックアップ
    2. phpMyAdminでデータベースのダンプを取る(化けてて良い)
    3. phpmyfaqで2種類のバックアップを取る
  2. Upgradeする
    1. phpmyfaqの新版を取ってきて、解凍する
    2. マニュアルのUpgradeを穴が開くほど確認する(単語の読み違えで失敗した・・・)
    3. FTPでアップロードする
    4. Upgradeを実行する
    5. サイトを表示すると文字化けしているけど今はOK。気になるなら事前に.htaccessでオレオレモードにする。やり方はこのサイトのどっかにたぶん書いてある。
  3. いよいよ本番。当然、この作業中にFAQデータに変更があってはいけない・・・と思うよ
    1. phpmyfaqが吐き出したデータをK2Eのような優秀なエディタで開く
    2. phpMyAdminでデータベースにアクセスする
    3. faqcategoriesを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    4. faqdtaを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    5. faqdata_revisionsを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    6. faqnewsを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    7. faqsearchesを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    8. faqtagsを空にして、開いているエディタから該当するSQLを見つけてぶち込む
    9. faqconfigを空にして、開いているエディタから該当するSQLを見つけてぶち込んではいけない!(楽しようとしてハマった)
    10. faqconfigのmain.metaDescriptionを慎重に訂正する
    11. faqconfigのmain.metaKeywordsを慎重に訂正する
    12. faqconfigのmain.titleFAQを慎重に訂正する
  4. 終わりと始まり
    1. で、データはこれで終わりなんだけど結局改造している部分とかテンプレートとかを対応させるのに数時間。。。(涙)

今後は作業した後にdiffしておくとか何かしておこうと誓った!・・・データベースは毎度いじることはないだろうから(祈る!)いいとしても、その他のファイルなどの更新で死んでしまう・・・・。その辺考えるとwordpressなんかは非常に優秀と言うか良く出来てるなーと思ったり。

※ちなみに2.5.5から2.6.2にしたときのメモ。で、ここまでやって記事を追加したら化けてるんじゃお話にならない・・・確認したらきちんと「私の読める文字で」表示された。。。やたー!??

コメント