2011年2月15日火曜日

CentOS5.5でTapsを動かす

Taps というツールを使ってPostgreSQLのデータをMySQLに移行しようとしたんですが、CentOS5.5へのRubyやらGemやらのインストールで割と手こずったのでメモ書きを。

まずはgemのインストールで使うライブラリとcheckinstallをyumでインストールします。

yum install mysql-devel postgresql-devel sqlite-devel checkinstall

Rubyは2011年2月現在yumでインストールできる1.8.5では
うまく動かなかったので公式サイトからファイル落としてきてインストールします。

wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p136.tar.gz
tar zxvf ruby-1.9.2-p136.tar.gz
cd ruby-1.9.2-p136
./configure --prefix=/usr
make
/usr/sbin/checkinstall --fstrans=no
### 対話でRPMを選択 ###

rpm -Uvh /usr/src/redhat/RPMS/i386/ruby-1.9.2-p136-1.i386.rpm

各種gemをインストールします。

gem update --system
gem install json --version '=1.5.1'
gem install sequel --version '=3.20.0'
gem install rack --version '=1.2.1'
gem install sqlite3-ruby --version '=1.2.5' -- --with-sqlite3-lib="/usr/lib/sqlite"
gem install pg --version '=0.10.1' -- --with-pg-lib="/usr/lib/pgsql"
gem install mysql --version '= 2.8.1' -- --with-mysql-lib=/usr/lib/mysql
gem install sinatra --version '=1.1.2'
gem install rest-client --version '=1.6.1'

TapsのGithub からバージョン「0.3.15」のファイルを落としてきて/usr/local/tapsに展開します。
そのまま起動してもgemのファイルが読み込めないエラーが出る場合は下記のファイルを書き換えます。

/usr/local/taps/lib/taps/cli.rb
一行目に下記を追加

require 'rubygems'

移行先のデータベース情報でtapsサーバー起動します。
/usr/local/taps/bin/taps server mysql://mysqluser:mysqlpassword@mysqlhost/databaseto?encoding=utf8 httpuser httppassword &

移行元のデータベースを指定して移行元からサーバーへデータをPushします。
/usr/local/taps/bin/taps push postgres://pguser:pgpassword@pghost/databasefrom http://httpuser:httppassword@localhost:5000

とりあえず動くところまで・・・。
データの検証とかは別途必要になります。

0 件のコメント:

コメントを投稿