Ruby on Rails 2.1 - Database Setup
Before starting with this chapter, make sure your database server is setup and running well. Ruby on Rails recommends to create three databases. A database for each development, testing and production environment. According to convention their names should be −
You should initialize all three of them and create a user and password for them with full read and write privileges. I am using root user ID for my application. In MySQL, a console session in which you do this looks something like this −
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)
Note − Here you would have to replace password with actual password you have set for your root userid.
If you are going to use testing and production databases then you should issue the same set of commands for each of the two databases library_production and library_test.
At this point, you need to let Rails know about the user name and password for the databases. You do this in the file database.yml, available in the ~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.
In this example I'm using root as user ID and password as password.
When you finish, database.yml should look something like as follows −
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 adapters in case you want to use any other database except MySQL.
What is next ?
Next two chapters will teach you how to model your database tables and how to manage them using Rails Migrations.