MerbでMySQLを使う。
MerbでのデフォルトのDBはRailsと同様にsqlite3です。ですが、せっかくなのでMySQLが使いたいという事で、MySQLを使用する場合の設定方法です。
まずはdata_objectsのMySQL用driverであるdo_mysqlをインストールしておきます。
$ sudo gem install do_mysql
アプリ作成の流れはsqliteの場合と同じです。
$ merb-gen app myapp
$ cd myapp
$ merb-gen resource article title:string,content:text
ひな形を作成したら、先にDBを作成しておきましょう。
mysql>create database db_development;
DBを作成したらconfig/database.ymlを以下のように編集します。
--- development: &defaults adapter: mysql database: db_development username: root password: yourpass host: localhost test: <<: *defaults database: db_test production: <<: *defaults database: db_production rake: <<: *defaults
後はrakeでautomigrateを実行して、DBにテーブルを作成するだけです。
$ rake db:automigrate (in /Users/norizo3/merbapps/myapp) Loading init file from /Users/norizo3/merbapps/myapp/config/init.rb Loading /Users/norizo3/merbapps/myapp/config/environments/development.rb Loading init file from /Users/norizo3/merbapps/myapp/config/init.rb Loading /Users/norizo3/merbapps/myapp/config/environments/rake.rb ~ Connecting to database... ~ Loaded slice 'MerbAuthSlicePassword' ... ~ Parent pid: 1022 ~ Compiling routes... ~ Activating slice 'MerbAuthSlicePassword' ...
テーブルが作成されたか確認してみましょう。
mysql>show tables; +--------------------------+ | Tables_in_db_development | +--------------------------+ | articles | | sessions | | users | +--------------------------+ 3 rows in set (0.01 sec) mysql> desc articles; +---------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | title | varchar(50) | YES | | NULL | | | content | text | YES | | NULL | | +---------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
merbを実行すればMerb&MySQLライフの始まりです。
$ merb Loading init file from /Users/norizo3/merbapps/myapp/config/init.rb Loading /Users/norizo3/merbapps/myapp/config/environments/development.rb ~ Connecting to database... ~ Loaded slice 'MerbAuthSlicePassword' ... ~ Parent pid: 1029 ~ Compiling routes... ~ Activating slice 'MerbAuthSlicePassword' ... merb : worker (port 4000) ~ Starting Mongrel at port 4000 merb : worker (port 4000) ~ Successfully bound to port 4000