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