Pages

2013-02-10

Ruby on Rails の準備メモ その2

の続き。mysql の作成まで。

blog プロジェクト

Ruby on Rails を始める。チュートリアルとしては、Ruby on Rails Guides: Getting Started with Rails がオススメ。チュートリアルの通りに進んでみる。

$ rails new blog

blog ディレクトリーが出来て、その中に Ruby on Rails のソースコード一式が入っている。以下、blog ディレクトリーを (blog プロジェクトの) トップ・ディレクトリーとして作業を進める。

MySQL を使う

デフォールトのデータベースは SQLite3 になっている。MySQL を使いたいので、変更したい。まずは、config/database.yml を覗いて、データベースが SQLite3 なことを確認。

development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

トップ・ディレクトリーで以下のコマンドを実行。

$ rails new blog --database=mysql

rails new blog コマンドを二度実行してしまうことになるけど、OK らしい。

config/database.yml の中身を確認。

development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

MySQL の設定

ぼくは MySQL を Synaptic パッケージ・マネージャーからインストールした。この時 root のパスワードを入力するよううながされたので、自分のログイン・パスワードを入力した。ただ、これがいけなかった。

上の設定ファイルを見ると分かる様に、username: root の password は空になっている。これは、mysql の root ユーザー (Linux の root ではない) のパスワードが空であることを指している。適当なユーザーを作ってパスワードをファイルに書くのが良いのか、root ユーザーのパスワードを空にするのか、何が良いのか分からない。

とりあえず、後者で対処した。

$ sudo mysql -p
Enter password: パスワード入力
mysql> set password for root@localhost=password('');
mysql> exit

データベースの作成

MySQL では development, test, production という三つのデータベースをセットで作成する。昔は mysql コマンドでデータベースを作っていたらしいが、今はコマンド一つで作成可能。

$ rake db:create

Install gem

データベースを作るタイミングだったかな? 次のエラーが出てしまう。

Could not find a JavaScript runtime.

See https://github.com/sstephenson/execjs for a list of available runtimes.

次のコマンドを試したが、エラーは直らない。

$ sudo gem install execjs
$ sudo gem install therubyracer

まず ./Gemfile に次の行を追加。

gem 'execjs'
gem 'therubyracer'

そして、次のコマンドを実行するとエラーが出なくなった。

$ bundle install

あとがき

Ruby on Rails の入り口にようやく立った。初めてだと、環境設定も一苦労。昔、Rails の勉強をしようと買った本を読み返したんだけど、Rails 1.0 向けの本だった。今の Rails はバージョン 3。色々と変わってて、目が回る。勉強。勉強。

No comments:

Post a Comment