Before starting with this chapter, make sure your database server is setup and running. Ruby on Rails recommends to create three databases - a database each for development, testing, and production environment. According to convention, their names should be as follows −
You should initialize all three of them and create a username and password for them with full read and write privileges. We are using root user ID for our application. In MySQL, a console session looks as follows −
mysql> create database library_development; Query OK, 1 row affected (0.01 sec) mysql> use library_development; Database changed mysql> grant all privileges on library_development.* to 'root'@'localhost' identified by 'password'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
You can do the same thing for the other two databases, library_production and library_test.
At this point, you need to let Rails know about the username and password for the databases. You do this in the file database.yml, available in the C:\ruby\library\config subdirectory of Rails Application you created. This file has live configuration sections for MySQL databases. In each of the sections you use, you need to change the username and password lines to reflect the permissions on the databases you've created.
When you finish, it should look something like −
development: adapter: mysql encoding: utf8 database: library_development username: root password: password host: localhost test: adapter: mysql encoding: utf8 database: library_test username: root password: password host: localhost production: adapter: mysql encoding: utf8 database: library_production username: root password: password host: localhost
NOTE − You can use similar setting for other databases if you are using any other database except MySQL.
The next two chapters explain how to model your database tables and how to manage those using Rails Migrations.