rails エラー「Runtime Error Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8」の対処法

rails エラー「Runtime Error Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8」の対処法

rails実行時にエラー「Runtime Error Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8」が発生した場合の対処法を記述してます。

環境

  • OS CentOS Linux release 7.9.2009 (Core)
  • Ruby 2.7.2
  • Rails 6.1.1
  • rbenv 1.1.2-40-g62d7798

エラー全文

サイトアクセス時に発生

対処法

sqliteのバージョンが古いため発生しているので、バージョンを上げる

ダウンロードします。最新バージョンはこちらで確認可能です。

curl -O https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz
tar xzvf sqlite-autoconf-3310100.tar.gz
cd sqlite-autoconf-3310100

競合しないようにディレクトリを指定。

./configure  --prefix=/opt/sqlite/sqlite3

インストール

make
sudo make install

バージョンを確認します。

/opt/sqlite/sqlite3/bin/sqlite3 --version

<出力結果>
3.31.1

gemをアンイストールします。

gem uninstall sqlite3

sqlite3を指定してインストールします。

gem install sqlite3 -- --with-sqlite3-include=/opt/sqlite/sqlite3/include --with-sqlite3-lib=/opt/sqlite/sqlite3/lib

これで自分の場合は、解決しました。