Rails6对于PostgreSQL的要求是9.3版本以上

太长不看,TL;DR。

    • やりたいこと

OS: CentOS 7
アプリ: Ruby on Rails 6
DB: PostgreSQL(別アプリと共用)

yumでPostgreSQLインストールしたらは9.2系が入った
Rails6からは9.3以上を使う必要があった
PostgreSQLを9.6系に上げた
9.3以上を使えというメッセージが出た
は?

結論(忙しい人用)

可以在Rails6中使用的PostgreSQL版本必须是9.3或更高。

我在CentOS7上创建了一个Rails 6的应用程序,并安装了各种必要的组件来使用PostgreSQL作为数据库。
顺便提一下,我正在构建的是一个开发环境,所以我试图重用另一个正在另一台服务器上运行的应用程序的组件。(*1)
然而我并不知道它们是所有麻烦的根源。

这次我们安装的PostgreSQL服务器是通过yum进行的。

$ yum install postgresql-devel
$ psql -v
#=> 9.2.22

一旦听说最新的9.2版本已经安装好了,所以先运行bundle install安装所有必需的gem,然后使用bundle exec rails s命令启动应用程序。

$ bundle exec rails s
#=> Your version of PostgreSQL (9.2.22) is too old. Active Record supports PostgreSQL >= 9.3.

要使用9.3以上的PostgreSQL。
顺便提一下,这也写在了Rails Watch 20181210上。

安装最新版本的PostgreSQL

在参考CentOS7.3安装PostgreSQL9.6.3的过程中,安装了9.6.3版本。

$ psql -v
#=> 9.6.3

重新启动Rails服务器

$ bundle exec rails s
#=> Your version of PostgreSQL (9.2.22) is too old. Active Record supports PostgreSQL >= 9.3.

什么?

结论

在这里,Rails所发出的警告并不是关于PostgreSQL的客户端版本,而是关于PostgreSQL服务器版本。
因此,在*1的位置需要升级“另一个运行在不同服务器上的应用程序使用的”PostgreSQL版本。

因为不想麻烦另外建立一个,所以我试图重复利用,但是偷懒是不好的呢~

广告
将在 10 秒后关闭
bannerAds