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版本。
因为不想麻烦另外建立一个,所以我试图重复利用,但是偷懒是不好的呢~