如何使用Postgres设置RubyonRails

来自菜鸟教程
跳转至:导航、​搜索

介绍


Postgres(或 PostgreSQL) 是一个开源数据库。 Ruby on Rails 是一个用 Ruby 编写的开源 Web 框架。 Rails 与数据库无关,这意味着它可以与各种不同的数据库一起使用。 默认情况下,它假定正在使用 MySQL,但它很容易与 Postgres 一起使用。

本指南将引导您创建一个使用 Postgres 数据库的 Rails 应用程序。 您可以在本地机器 VPS 上按照指南进行操作。

安装要求


使用 RVM 安装 Rails

安装 Rails 最简单的方法是使用 RVM,它也安装 Ruby。 要安装 RVM,您需要确保您的系统已安装 curl(如何安装取决于您的操作系统)。 如果您已经安装了 RVM,请跳到下一部分。

RVM 可以在安装过程中自动安装 Ruby 和 Rails。 为此,请运行以下命令:

\curl -L https://get.rvm.io | bash -s stable --rails

注意:在运行 RVM 安装脚本 (或通过管道传输到 bash 的任何其他远程脚本之前,您应该 查看它。

RVM 将自行安装在您的系统上。 您现在可以使用它来管理您的 Ruby 版本。 这很有用,因为您可能需要为不同的项目使用不同版本的 Ruby。 RVM 还为我们安装了 Rails gem。

使用 RubyGems 安装 Rails

如果您已经安装了 RVM,则无需重新安装。 相反,您可以通过安装 gem 来简单地安装 Rails:

gem install rails

这将安装 Rails 和它需要的任何其他 gem。

安装 Postgres

安装 Postgres 的方法取决于您的操作系统。 有关完整列表,请参阅 postgresql.org/download。 通常,在 Ubuntu 上使用 apt-get 或在 OS X 上使用 Homebrew 等包管理器是最简单的。

如果您在本地机器上安装 Postgres,您可能还需要安装 GUI(尽管本指南假定使用命令行)。 pgAdmin 不是世界上最漂亮的工具,但它可以胜任。

最后,您需要安装 pg gem,以便您可以通过 Ruby 代码与 Postgres 交互。 为此:

gem install pg

设置 Postgres


为我们将在下一步中创建的 Rails 应用程序创建一个 Postgres 用户。 为此,请切换到 Postgres 用户:

su - postgres

之后访问 Postgres:

psql

然后创建一个用户(或 Postgres 所称的“角色”):

create role myapp with createdb login password 'password1';

创建您的 Rails 应用程序


要创建为 Postgres 配置的 Rails 应用程序,请运行以下命令:

rails new myapp --database=postgresql

这将创建一个名为“myapp”的目录,其中包含一个名为“myapp”的应用程序(您可以在运行命令时将其命名为任何您喜欢的名称)。 Rails 期望数据库用户的名称与应用程序的名称相匹配,但如果需要,您可以轻松地更改它。

我们现在将配置 Rails 将与哪个数据库通信。 这是使用 database.yml 文件完成的,该文件位于:

RAILS_ROOT/config/database.yml

:RAILS_ROOT 是Rails 根目录。 在上面的示例中,它将位于 /myapp(相对于您当前的位置)。

Rails 使用 database.yml 文件连接到当前 Rails 环境的适当数据库。 它使用数据序列化标准 YAML。 这里列出了一些针对不同环境的数据库; 开发、测试和生产。 默认情况下,Rails 会期望每个环境都有一个不同的数据库。 这很方便,例如,每次运行 Rails 测试时都会清空并重建测试数据库。 对于每个数据库,确保用户名和密码与您为 Postgres 用户提供的用户名和密码匹配。

配置后,您的 database.yml 应包含如下内容:

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  username: myapp
  password: password1

test:
  adapter: postgresql
  encoding: unicode
  database: myapp_test
  pool: 5
  username: myapp
  password: password1

然后你可以运行:

rake db:setup

这将创建开发和测试数据库,将它们的所有者设置为指定的用户,并在每个数据库中创建“schema_migrations”表。 该表用于记录您的 迁移 到模式和数据。

运行导轨


你现在应该可以启动你的 Rails 应用了:

rails server

如果您导航到 localhost:3000,您应该会看到 Rails 登录页面。 不过,这并没有多大作用。 为了与我们的数据库交互,让我们创建一个脚手架:

rails g scaffold Post title:string body:text
rake db:migrate

现在导航到 localhost:3000/posts。 从这里,您可以创建新帖子、编辑现有帖子和删除帖子。 有关更多介绍性操作,请参阅 Rails 入门指南

您的 Rails 应用程序现在正在与 Postgres 数据库通信!