Railsで使ってるMySqlをブラウジングしたかったので話題のRailsDBを使ってみた。
といってもまだ0.2バージョンでデータ構造を見るだけで、レコードの中身をみたり編集することは出来ないんだけど。
まずは入手
インスト―ル&起動
落としてきたファイルをサーバーに配置して展開して実行。
tar xvf railsdb_0.2.tar ruby script/server -p3500
んで http://localhost:3500/ を参照すると・・
no such file to load -- sqlite3
おっとSqliteがないとダメみたいだ。そういえばdb:migrateもしてないや(汗
まずはSqliteをインストール
apt-get install sqlite3 #本体をインストールしてから gem install sqlite3-rails #ドライバをインストール
としたらgem install sqlite3-railsのところで
/usr/bin/ruby1.8 extconf.rb install sqlite3-ruby extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
とか言われてついカッとなってruby1.8-devとlibsqlite3-devをインストールしちゃいました。
apt-get install ruby1.8-dev apt-get install libsqlite3-dev gem install sqlite3-ruby
せっかくGem便利なんだからこのあたりもやってくれればいいのにとか思う僕は怠惰なんですか?そうですか。。
DBの構築
rale db:migarate しようとしたらおこられる><
ruby: symbol lookup error: /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.2/lib/sqlite3_api.so: undefined symbol: RSTRING_PTR
RSTRING_PTRって1.8.6で追加されたはず、、、てことは
1.8.6以降じゃないと使えないってことか!!!!!!!!(はせり略)
まあ憤ってもしょうがないんで直す。
/usr/lib/ruby/1.8/i486-linux/ruby.h を編集して以下の2行を追加してあげる。
#define RSTRING_PTR(s) (RSTRING(s)->ptr) #define RSTRING_LEN(s) (RSTRING(s)->len)
この後にsqlite3-rubyをビルドしなおす。
gem uninstall sqlite3-ruby gem install sqlite3-ruby rake db:migrate
これでやっとdb:migrateが成功
画面から動かす
http://localhost:3500/にアクセスしてid:railsdb PASS: changemeでアクセス。
わーい。がめんでたよ〜
さーてじゃあ他のPJのDBを参照してみようか。
新規DBの追加
メニューからDatabaseを選びAddDatabaseでDBを追加。
- Driver:Mysql,Sqlite,posgresqlから好きなのを選ぶ
- Name:データベース名
- Description:適当
- Path:Sqliteのときだけ指定。Mysqlとポスグレはいらん
- Host:DBサーバーのホスト(こっから下はMysqlとポスグレのみ)
- Username:ユーザー名
- Password:パスワード
追加出来たらDatabaseのところから名前をクリックすると中が見れる。。。はずなんだけどもエラー。。
No such file or directory - /tmp/mysql.sock
確かに〜。デフォルト設定で繋ぎに行っているわけね。今の環境だと「/var/run/mysqld/mysqld.sock」にあるのでそちらに参照を変えてあげなくちゃいけない。
んで設定を探してたんだけど見当たらない。もしやと思いswitch.rbを読んでみたら。
31 when 'mysql' 32 ActiveRecord::Base.establish_connection( 33 :adapter => 'mysql', 34 :database => database.name, 35 :host => database.host, 36 :username => database.username, 37 :password => database.password 38 )
sock指定してねぇじゃねぇか!!!!!!!!!
しょうがないのでなので直してあげる。
31 when 'mysql' 32 ActiveRecord::Base.establish_connection( 33 :adapter => 'mysql', 34 :database => database.name, 35 :host => database.host, 36 :username => database.username, 37 :password => database.password, 38 :socket => '/var/run/mysqld/mysqld.sock' 39 )