mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Move database configuration section from Getting Started Guide into Configuration guide
This is because newbies don't need to know immediately all the different ways of configuring a database on Rails. The default is SQLite3 which'll work on most operating systems by default. The only reason for it to *not* work is due to missing packages on the operating system, which should be taken care of in some sort of 'Installing Rails for <Operating System> guide.
This commit is contained in:
parent
7fd790e682
commit
dcfb990e1b
2 changed files with 93 additions and 140 deletions
|
@ -467,6 +467,99 @@ There are a few configuration options available in Active Support:
|
|||
|
||||
* +ActiveSupport::Logger.silencer+ is set to +false+ to disable the ability to silence logging in a block. The default is +true+.
|
||||
|
||||
h4. Configuring a Database
|
||||
|
||||
Just about every Rails application will interact with a database. The database to use is specified in a configuration file called +config/database.yml+. If you open this file in a new Rails application, you'll see a default database configured to use SQLite3. The file contains sections for three different environments in which Rails can run by default:
|
||||
|
||||
* The +development+ environment is used on your development/local computer as you interact manually with the application.
|
||||
* The +test+ environment is used when running automated tests.
|
||||
* The +production+ environment is used when you deploy your application for the world to use.
|
||||
|
||||
TIP: You don't have to update the database configurations manually. If you look at the options of the application generator, you will see that one of the options is named <tt>--database</tt>. This option allows you to choose an adapter from a list of the most used relational databases. You can even run the generator repeatedly: <tt>cd .. && rails new blog --database=mysql</tt>. When you confirm the overwriting of the +config/database.yml+ file, your application will be configured for MySQL instead of SQLite. Detailed examples of the common database connections are below.
|
||||
|
||||
h5. Configuring an SQLite3 Database
|
||||
|
||||
Rails comes with built-in support for "SQLite3":http://www.sqlite.org, which is a lightweight serverless database application. While a busy production environment may overload SQLite, it works well for development and testing. Rails defaults to using an SQLite database when creating a new project, but you can always change it later.
|
||||
|
||||
Here's the section of the default configuration file (<tt>config/database.yml</tt>) with connection information for the development environment:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: sqlite3
|
||||
database: db/development.sqlite3
|
||||
pool: 5
|
||||
timeout: 5000
|
||||
</yaml>
|
||||
|
||||
NOTE: Rails uses an SQLite3 database for data storage by default because it is a zero configuration database that just works. Rails also supports MySQL and PostgreSQL "out of the box", and has plugins for many database systems. If you are using a database in a production environment Rails most likely has an adapter for it.
|
||||
|
||||
h5. Configuring a MySQL Database
|
||||
|
||||
If you choose to use MySQL instead of the shipped SQLite3 database, your +config/database.yml+ will look a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: mysql2
|
||||
encoding: utf8
|
||||
database: blog_development
|
||||
pool: 5
|
||||
username: root
|
||||
password:
|
||||
socket: /tmp/mysql.sock
|
||||
</yaml>
|
||||
|
||||
If your development computer's MySQL installation includes a root user with an empty password, this configuration should work for you. Otherwise, change the username and password in the +development+ section as appropriate.
|
||||
|
||||
h5. Configuring a PostgreSQL Database
|
||||
|
||||
If you choose to use PostgreSQL, your +config/database.yml+ will be customized to use PostgreSQL databases:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
database: blog_development
|
||||
pool: 5
|
||||
username: blog
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
h5. Configuring an SQLite3 Database for JRuby Platform
|
||||
|
||||
If you choose to use SQLite3 and are using JRuby, your +config/database.yml+ will look a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcsqlite3
|
||||
database: db/development.sqlite3
|
||||
</yaml>
|
||||
|
||||
h5. Configuring a MySQL Database for JRuby Platform
|
||||
|
||||
If you choose to use MySQL and are using JRuby, your +config/database.yml+ will look a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcmysql
|
||||
database: blog_development
|
||||
username: root
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
h5. Configuring a PostgreSQL Database for JRuby Platform
|
||||
|
||||
If you choose to use PostgreSQL and are using JRuby, your +config/database.yml+ will look a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcpostgresql
|
||||
encoding: unicode
|
||||
database: blog_development
|
||||
username: blog
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
Change the username and password in the +development+ section as appropriate.
|
||||
|
||||
h3. Rails Environment Settings
|
||||
|
||||
|
|
|
@ -292,146 +292,6 @@ rundown on the function of each of the files and folders that Rails created by d
|
|||
|tmp/|Temporary files|
|
||||
|vendor/|A place for all third-party code. In a typical Rails application, this includes Ruby Gems and the Rails source code (if you optionally install it into your project).|
|
||||
|
||||
h4. Configuring a Database
|
||||
|
||||
Just about every Rails application will interact with a database. The database
|
||||
to use is specified in a configuration file, +config/database.yml+. If you open
|
||||
this file in a new Rails application, you'll see a default database
|
||||
configured to use SQLite3. The file contains sections for three different
|
||||
environments in which Rails can run by default:
|
||||
|
||||
* The +development+ environment is used on your development/local computer as you interact
|
||||
manually with the application.
|
||||
* The +test+ environment is used when running automated tests.
|
||||
* The +production+ environment is used when you deploy your application for the world to use.
|
||||
|
||||
TIP: You don't have to update the database configurations manually. If you look at the
|
||||
options of the application generator, you will see that one of the options
|
||||
is named <tt>--database</tt>. This option allows you to choose an adapter from a
|
||||
list of the most used relational databases. You can even run the generator
|
||||
repeatedly: <tt>cd .. && rails new blog --database=mysql</tt>. When you confirm the overwriting
|
||||
of the +config/database.yml+ file, your application will be configured for MySQL
|
||||
instead of SQLite. Detailed examples of the common database connections are below.
|
||||
|
||||
h5. Configuring an SQLite3 Database
|
||||
|
||||
Rails comes with built-in support for "SQLite3":http://www.sqlite.org, which is
|
||||
a lightweight serverless database application. While a busy production
|
||||
environment may overload SQLite, it works well for development and testing.
|
||||
Rails defaults to using an SQLite database when creating a new project, but you
|
||||
can always change it later.
|
||||
|
||||
Here's the section of the default configuration file
|
||||
(<tt>config/database.yml</tt>) with connection information for the development
|
||||
environment:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: sqlite3
|
||||
database: db/development.sqlite3
|
||||
pool: 5
|
||||
timeout: 5000
|
||||
</yaml>
|
||||
|
||||
NOTE: In this guide we are using an SQLite3 database for data storage, because
|
||||
it is a zero configuration database that just works. Rails also supports MySQL
|
||||
and PostgreSQL "out of the box", and has plugins for many database systems. If
|
||||
you are using a database in a production environment Rails most likely has an
|
||||
adapter for it.
|
||||
|
||||
h5. Configuring a MySQL Database
|
||||
|
||||
If you choose to use MySQL instead of the shipped SQLite3 database, your
|
||||
+config/database.yml+ will look a little different. Here's the development
|
||||
section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: mysql2
|
||||
encoding: utf8
|
||||
database: blog_development
|
||||
pool: 5
|
||||
username: root
|
||||
password:
|
||||
socket: /tmp/mysql.sock
|
||||
</yaml>
|
||||
|
||||
If your development computer's MySQL installation includes a root user with an
|
||||
empty password, this configuration should work for you. Otherwise, change the
|
||||
username and password in the +development+ section as appropriate.
|
||||
|
||||
h5. Configuring a PostgreSQL Database
|
||||
|
||||
If you choose to use PostgreSQL, your +config/database.yml+ will be customized
|
||||
to use PostgreSQL databases:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
database: blog_development
|
||||
pool: 5
|
||||
username: blog
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
h5. Configuring an SQLite3 Database for JRuby Platform
|
||||
|
||||
If you choose to use SQLite3 and are using JRuby, your +config/database.yml+ will
|
||||
look a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcsqlite3
|
||||
database: db/development.sqlite3
|
||||
</yaml>
|
||||
|
||||
h5. Configuring a MySQL Database for JRuby Platform
|
||||
|
||||
If you choose to use MySQL and are using JRuby, your +config/database.yml+ will look
|
||||
a little different. Here's the development section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcmysql
|
||||
database: blog_development
|
||||
username: root
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
h5. Configuring a PostgreSQL Database for JRuby Platform
|
||||
|
||||
Finally if you choose to use PostgreSQL and are using JRuby, your
|
||||
+config/database.yml+ will look a little different. Here's the development
|
||||
section:
|
||||
|
||||
<yaml>
|
||||
development:
|
||||
adapter: jdbcpostgresql
|
||||
encoding: unicode
|
||||
database: blog_development
|
||||
username: blog
|
||||
password:
|
||||
</yaml>
|
||||
|
||||
Change the username and password in the +development+ section as appropriate.
|
||||
|
||||
h4. Creating the Database
|
||||
|
||||
Now that you have your database configured, it's time to have Rails create an
|
||||
empty database for you. You can do this by running a rake command:
|
||||
|
||||
<shell>
|
||||
$ rake db:create
|
||||
</shell>
|
||||
|
||||
This will create your development and test SQLite3 databases inside the
|
||||
<tt>db/</tt> folder.
|
||||
|
||||
TIP: Rake is a general-purpose command-runner that Rails uses for many things.
|
||||
You can see the list of available rake commands in your application by running
|
||||
+rake -T+.
|
||||
|
||||
h3. Hello, Rails!
|
||||
|
||||
One of the traditional places to start with a new language is by getting some
|
||||
|
|
Loading…
Reference in a new issue