2011年05月16日

Rakeでデータベースを操作

前回のRakefileを改良して、MySQLとPostgreSQLの両方を操作できるRakefileを作成しました。
また、データベースの作成、削除以外でよく使用するデータベースの一覧表示やテーブルの一覧表示のタスクを追加しました。

WindowsとLinuxで同じRakefileを使用する

使用例

MySQLのデータベース一覧表示
$ rake mysql:databases
(in /home/uname/ruby/rake)
input database password
mysql -u root -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb_test |
| mysql |
| test |
| testdb |
+--------------------+


PostgreSQLでテーブルの一覧表示
$ rake psql:tables
(in /home/uname/ruby/rake)
input database password
psql -U postgres -d mydb_test -c "\d"
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+--------+----------+----------
public | access | テーブル | postgres
(1 行)


作成したRakefileのタスクの一覧は以下になります。
$ rake -T
(in /home/uname/ruby/rake)
rake mysql:create # create database
rake mysql:databases # show databases
rake mysql:desc[table_name] # describe table (mysql:desc[TABLENAME])
rake mysql:drop # drop database
rake mysql:exec[query] # execute query (mysql:exec["QUERY"])
rake mysql:migrate # migrate database
rake mysql:tables # show tables
rake psql:create # create database
rake psql:databases # show databases
rake psql:desc[table_name] # describe table (psql:desc[TABLENAME])
rake psql:drop # drop database
rake psql:exec[query] # execute query (psql:exec["QUERY"])
rake psql:migrate # migrate database
rake psql:tables # show tables (\d)

posted by jun1 at 00:29| Comment(0) | TrackBack(0) | ruby

2011年04月29日

WindowsとLinuxで同じRakefileを使用する

開発マシンがWindowsで、本番サーバーがLinuxということは良くあります。そのような場合、データベースの作成や修正にWindowsではバッチファイル、Linuxではシェルスクリプトを使っていました。

しかし、WindowsとLinuxにRubyがインストールされていればRakeが使用できるので、RakefileをWindowsとLinuxの両方で動作するように書けば良いと思い、作ってみました。

サンプルRakefileの解説のページ

また、どうせ作るならrailsのRakeのコマンドに似せようと思って似たコマンドにしています。

サンプルRakefileの実行例
$ rake mydb:create
$ rake mydb:migrate
$ rake mydb:drop

注. データベースだけならRailsの機能を利用する方法もありますが、AmaterasERDで作成したDDLをそのまま使用したかったのでこのようにしています。
posted by jun1 at 23:53| Comment(0) | TrackBack(0) | ruby

2010年10月24日

apacheでPassenger 3.0を利用

Passenger 3.0をapacheから利用するためのメモ

環境
・OS: CentOS 5.5 64bit版
・apache: 2.2.3 (yumで標準インストール)
・ruby: 1.9.2 (ソースからコンパイル)
・railsプロジェクト名」: testnw
# which httpd
/usr/sbin/httpd

# httpd -version
Server version: Apache/2.2.3
Server built: Aug 30 2010 12:28:40

# which apxs
/usr/sbin/apxs

# which ruby
/usr/local/bin/ruby

# ruby --version
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]


前回、gemでPassenger 3.0をインストールしましたが、
今回はapacheからPassenger 3.0を実行するようにします。

Phusion Passenger 3.0 が公開


インストールされたものを確認するとapache用モジュールがありません。ドキュメントをみるとpassenger-install-apache2-moduleを実行するようになっていました。
Phusion Passenger users guid - 2. Installing, upgrading and uninstalling Phusion Passenger

そのため上記のドキュメントに沿って、以下のコマンドでインストールします。
# /usr/local/bin/passenger-install-apache2-module


続きを読む
posted by jun1 at 23:50| Comment(0) | TrackBack(0) | ruby

2010年10月20日

Phusion Passenger 3.0 が公開

Apacheでrailsを動かすPassenger のバージョン3.0が公開されました。
Apache向けRailsアプリケーション実装モジュール「Phusion Passenger 3.0」(SourceForge.JP)

この前、CentOS 64bit版に ruby 1.9.2 をインストールして rails 3.0を試していたので、Passenger3.0もインストールしてみました。インストールはgemで問題なくできました。
# gem list passenger

*** LOCAL GEMS ***

passenger (2.2.15)

# gem install passenger
Successfully installed daemon_controller-0.2.5
Successfully installed spruz-0.1.5
Successfully installed file-tail-1.0.5
Successfully installed passenger-3.0.0
4 gems installed
Installing ri documentation for daemon_controller-0.2.5...
Installing ri documentation for spruz-0.1.5...
Installing ri documentation for file-tail-1.0.5...
Installing ri documentation for passenger-3.0.0...
Installing RDoc documentation for daemon_controller-0.2.5...
Installing RDoc documentation for spruz-0.1.5...
Installing RDoc documentation for file-tail-1.0.5...
Installing RDoc documentation for passenger-3.0.0...

# passenger --version
Phusion Passenger version 3.0.0

"Phusion Passenger" is a trademark of Hongli Lai & Ninh Bui.


3.0のドキュメントを見ているとスタンドアローンでも使えるようなので、試してみることにしました。
Phusion Passenger Standalone users guide

続きを読む
posted by jun1 at 00:38| Comment(0) | TrackBack(0) | ruby