在ActiveRecord config

时间:2016-07-21 01:28:32

标签: postgresql activerecord rails-activerecord

我的机器上运行了多个版本的PostgreSQL(运行Ubuntu Trusty)。

$ service postgresql status
9.1/main (port 5433): online
9.5/main (port 5432): online

我正在使用ActiveRecord运行几个Ruby应用程序,每个应用程序都使用不同版本的Postgres,我希望能够在database.yml中指定Postgres版本,如下所示:

default: &default
  adapter: postgresql
  encoding: utf8
  version: 9.1
  # ... or, since this seems to be close to pg_wrapper's syntax:
  cluster: 9.1/main

想要做的事情是指定port: 5433,因为每台机器上的每个版本可能会有所不同。{正在运行。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用一些ERB将环境变量放在 public function getNextLine() { $csvRow = fgetcsv($this->fileHandler, 0, $this->separator, $this->enclosure); if ($csvRow && is_array($csvRow)) { array_map( function($str) { return iconv(mb_detect_encoding($str, $this->encodings, true), 'UTF-8', $str); }, $csvRow ); return $csvRow; } return false; } 中:

database.yml

这样,您的default: &default adapter: postgresql encoding: utf8 port: <%= ENV['POSTGRESQL_91_PORT'] %> 文件在各种计算机上都是相同的,您只需要设置一些特定于计算机的环境设置。