我正在尝试在我的 EC2 实例中运行 Rails 6,但遇到以下错误:Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8.
如果重要:
- 我的 gem 文件中有以下内容:gem 'sqlite3', '~> 1.4
- 我正在使用以下命令:rvmsudo rails server -p 80 -b 0.0.0.0
- 当我运行时 rails s
在本地我没有遇到这个问题。
这与 here 的问题相同,但所选答案特定于使用 AWS Cloud9。
编辑:
这是运行后的结果sudo yum install build-essential libsqlite3-dev sqlite3 software-properties-common
:
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package build-essential available.
No package libsqlite3-dev available.
No package sqlite3 available.
No package software-properties-common available.
Error: Nothing to do
这是运行后的结果
sudo yum install libsqlite3-dev
和 sudo yum install sqlite3
, 分别:Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package libsqlite3-dev available.
Error: Nothing to do
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package sqlite3 available.
Error: Nothing to do
编辑 2:
运行时
rails db:migrate
我看到这个:warning Skipping preferred cache folder "/home/ec2-user/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
** Execute db:load_config
** Execute db:migrate
rails aborted!
Your version of SQLite (3.7.17) is too old. Active Record supports SQLite >= 3.8
最佳答案
Centos7
更新说明:
wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
tar xzvf sqlite-autoconf-3290000.tar.gz
cd sqlite-autoconf-3290000
./configure --prefix=/opt/sqlite/sqlite3
make
sudo make install
/opt/sqlite/sqlite3/bin/sqlite3 --version
gem uninstall sqlite3
gem install sqlite3 -- --with-sqlite3-include=/opt/sqlite/sqlite3/include \ --with-sqlite3-lib=/opt/sqlite/sqlite3/lib
关于ruby-on-rails - SQLite (3.7.17) 版本太旧。 Active Record 支持 SQLite >= 3.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58073262/