如何使用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 数据库通信!