cafebabe.jp 日々のよしなしごとをのたまうブログ.

64月/110

Redmineのデータベースをsqlite3からMySQLに変更 (Snow Leopard)


sqlite3で運用していたが,重くなってきたので,MySQLで運営しようとしてハマった記録.
最終的にMySQL 5.1.x for Mac OS X 10.6 (x86 64bit)を使った場合に移行できた.
最新のMySQLを使った場合,MySQLへのデータのインポートでこける.

以下は試行錯誤の記録.MacでRedmine+MySQLで動かしたい場合は最新のMySQL 5.5ではなく,MySQL 5.1を使うこと.

Redmine(Rails) の DB を SQLite3 から MySQL に移行する」を参考にRedmineのデータをYAMLにダンプするツールを導入する.問題なくダンプまで終了.
MacPortsを使い,mysql5 をインストール.

$ sudo port install mysql5
$ sudo port install mysql5-server

問題なく終了.
続いて,MySQLにredmineユーザを作り,データベースも作成.

$ mysql5
mysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'my_password';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';

database.ymlにMySQLを使う設定をdevelopmentに書く.
いざ,

$ sudo rake db:load RAILS_ENV=development
uninitialized constant MysqlCompat::MysqlRes

というエラーが出てインポートできねぇ.

どうも,MacPortsがだめっぽい(という情報が飛んできた.電波!?)ので,MacPortsでインストールしたMySQLはアンインストールして,インストーラを使いインストールすることにする.

$ sudo port uninstall mysql5-server
$ sudo port uninstall mysql5

MySQLのサイトから最新のMySQL(MySQL Community Server 5.5.10)のdmgをダウンロードする.64bitのやつね.
イメージをマウントすると,READMEと3つのファイルがある.長い名前のやつと,StartupItemとかいうやつと,環境設定用のファイル(prefPane)である.長い名前のやつを最初にインストール,そして,StartupItemをインストール,最後にprefPaneをダブルクリックするとOK.

再度MySQLにユーザ登録&Redmine用のデータベースを作成.ここまでは問題なくOK.
いざ,

$ sudo rake db:load RAILS_ENV=development
uninitialized constant MysqlCompat::MysqlRes

何がおかしいのかよくわからんが,Snow Leopard用のMySQLではなく,Leopard用のMySQLを使えという神託がくだったので,インストールしたMySQLをアンインストールして,今度はLeopard用のMySQL (MySQL Community Server 5.5.10)をインストールすることにする.

しかし,アンインストール方法がわからねぇ.インストーラはインストールしかできない.いろんなことに先人はいるもので,ディレクトリごと消せば良いらしい.(MacからMySQLをアンインストールする方法)

再度MySQLにユーザ登録&Redmine用のデータベースを作成.ここまでは問題なくOK.
いざ,

$ sudo rake db:load RAILS_ENV=development
uninitialized constant MysqlCompat::MysqlRes

...しばしここで手詰まり.1日ほど寝かせておいた.
で,次の日,「Ruby on Rails With Apache/MySQL on Mac OS X (Snow Leopard)」という神のようなページを発見.
このページを参考に,MySQL 5.5をアンインストールし,MySQL 5.1をインストール.
その後,Gemはインストール済みなので,gemでmysqlをインストール.

$ sudo env ARCHFLAGS="-arch x86_64" gem install --no-rdoc --no-ri mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

RedmineユーザをMySQLに作成し,データベースも作成.
いざ,

$ sudo rake db:load RAILS_ENV=development

ようやく成功.データが入れられたので,本番用と入れ替える.database.ymlを書き換え,productionとdevelopmentを入れ替え,Apacheの再起動(passengerで動かしている).
Redmineのページを見ると,データがそのまま残ってるので,OK.「管理」→「情報」を見ると,MySQLになっているので,OK.
無事移行完了.

長かった.

ここでは省略しているものの,MacPortsでインストールしたものをすべてアップデートして,ImageMagickのバージョンが上がってしまい,Redmineが動かなくなったり,

$ sudo port selfupdate
sudo port upgrade outdated

Gemも同じようにアップデートして,railsのバージョンが上がり,Redmineが動かなくなったり,

$ sudo gem install rubygems-update
$ sudo update_rubygems

いろいろ紆余曲折を経てここまで来ている.

こういう環境設定で詰まるのは,成果がまったくないのにも関わらず,ムキになってしまって時間を湯水のように使ってしまうので,ダメだ.

 
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

Spam Protection by WP-SpamFree

No trackbacks yet.