我的机器上运行了多个版本的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
,因为每台机器上的每个版本可能会有所不同。{正在运行。有没有办法做到这一点?
答案 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'] %>
文件在各种计算机上都是相同的,您只需要设置一些特定于计算机的环境设置。