→
以前とあるサイトを管理するのにDrupalを使っていました。DrupalはDrupalでまぁいいとこもあるんですが、理由があってXOOPSに乗り換えることにしました。
DrupalはXOOPSと比べて、圧倒的に情報が少ないというのが一番大きくて、それとDrupalのデザインをいじるのに、Drupal内部の書き換えを結構やってしまったせいで、バージョンアップすらままならなくなったからです。
ただ移行するにあたって、これまで登録してくれた会員の方々に再登録をしてもらうのはNGでした。そこでDrupalからXOOPSへの移行方法をWebで探したわけですが、ない!全然ない!逆にXOOPSからDrupalへの移行方法は色々とあるようです。
情報がまったくなかったわけで仕方ないので、自分で移行してみることにしました。移行の条件としては、
- Drupalのユーザ名、パスワード、E-Mailを漏れなく移行する。
- ユーザグループ情報も移行する。
結論としては、以下の方法で実現できます。
※以下に続く方法を実現したPHPスクリプトがあるのはあるのですが、自分の環境に特化しているため広く公開することができません。必要な方はご連絡いただければお渡しすることはできます。
まずデータには、素直に対応付けできるデータは良いのですが、そうはいかないデータがあります。1つ目はXOOPSのactkeyというやつです。これは、ユーザを一意に特定する乱数のようです。これはPHPでは以下の記述で対応できます。
2つ目のユーザ権限に関しては、DrupalとXOOPSのグループをそれぞれ設定します。これは整数で入っていますが、まずDrupalとXOOPSで値が合いません。それぞれ対応付けてDBに入れる必要があります。また、普通にDrupal、XOOPSをインストールすると、DrupalのDBはUTF-8、XOOPSのDBはEUC-JPです。なので、Drupal DBのデータをEUC-JPに変換する必要があります。substr( md5(uniqid(mt_rand(), 1)), 0, 8 )
DrupalとXOOPSのユーザデータの対応表※XOOPSのテーブルプレフィックスは「xoops」とします。
Drupal | XOOPS | |
テーブル名 | users | xoops_users |
ユーザID | uid | uid |
ユーザ名 | name | uname |
パスワード | pass | pass |
ユーザ作成日 | created | user_regdate |
DrupalとXOOPSのユーザ権限データ対応表
Drupal | XOOPS | |
テーブル名 | users_roles | xoops_groups_users_link |
ユーザID | uid | uid |
ユーザ権限 | rid | 忘れてしまいました |
0 コメント:
コメントを投稿