如何使用Postgres在Ruby on Rails上进行设置

状态:已弃用

本文已弃用,不再维护。

原因

我们现在提供最新的教程,针对不同平台使用 Rails 与 Postgres。

请参考

本文仍可作为参考,但可能无法正常工作或遵循最佳实践。我们强烈建议使用针对您所使用操作系统的最近文章。

介绍


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,您可能还希望安装一个图形用户界面(尽管本指南假定使用命令行)。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将要连接的数据库。这是通过位于:

RAILS_ROOT/config/database.yml

的database.yml文件完成的。注意:RAILS_ROOT是Rails根目录。在上面的示例中,它将位于/myapp(相对于您当前的位置)。

database.yml文件被Rails用于连接当前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应用程序了:

rails server

如果你访问 localhost:3000,你应该会看到一个Rails的欢迎页面。不过这个页面并没有太多功能。要与我们的数据库进行交互,让我们创建一个脚手架:

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

现在导航至 localhost:3000/posts。从这里,你可以创建新的帖子,编辑现有的帖子,以及删除帖子。查看Rails入门指南了解更多入门操作。

你的Rails应用程序现在已经与Postgres数据库进行通信了!

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-ruby-on-rails-with-postgres