如何使用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 安裝腳本

RVM 將安裝在您的系統上。您現在可以使用它來管理您的 Ruby 版本。這很有用,因為您可能需要為不同的項目使用不同版本的 Ruby。RVM 還為我們安裝了 Rails 寶石。

使用 RubyGems 安裝 Rails

如果您已經安裝了 RVM,則無需重新安裝它。而是可以通過安裝寶石來安裝 Rails:

gem install rails

這將安裝 Rails 和它所需的任何其他寶石。

安裝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(相對於您當前的位置)。

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