5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ディップAdvent Calendar 2020

Day 21

Rails6のPostgreSQLは9.3以上

Last updated at Posted at 2020-12-20

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上でRails6のアプリを作成し、DBにPostgreSQLを利用しようと諸々インストールを行いました。
ちなみに構築しようとしている環境は開発用なので別サーバで動いている別のアプリが使っているものを流用しようとしました。(*1)
それがすべての元凶とも知らずに。

今回たてるサーバのPostgreSQLはとりあえずyumで入れました。

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

とりあえず9.2系が入ったらしいのでbundle install諸々やって 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ウォッチ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のバージョンを上げる必要がありました。

別で立てるのが面倒だったので流用しようとしたのですが、横着はいけないですね~。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?