关于Rails上SQLite3的困惑

时间:2015-03-23 06:10:49

标签: ruby-on-rails ruby sqlite

我学习Rails,我知道这可能是一个愚蠢的问题。但是,当通过运行命令rails db从命令行查询数据库时,它会产生错误:

Couldn't find database client: sqlite3. Check your $PATH and try again.

我通过在终端上键入sqlite3来检查是否安装了SQLite3并且它说:

The program 'sqlite3' is currently not installed. You can install it by typing:
sudo apt-get install sqlite3

事情是我遵循Rails指南并且做得很好。我安装了gem sqlite3,应用程序可以保存,更新和删除没有任何问题。据我所知,sqlite3 gem只是一个与SQLite3引擎一起使用的Ruby接口。如果我还没有安装SQLite3,我的应用程序怎么能保存数据?

为我的英语道歉。

2 个答案:

答案 0 :(得分:1)

确保安装了SQLite3的开发标题。

例如:

在Ubuntu上,您可以使用

apt-get install libsqlite3-dev

安装了自制软件的Mac上:

brew install sqlite.

OR

您可以使用PostgresMySql等数据库。

Postgres的示例:

在Gemfile文件中

gem 'pg'

配置/ database.yml的

adapter: postgresql
encoding: unicode
database: project_development
pool: 5
username: "POSTGRES-USER"
password: "POSTGRES-PASSWORD"

答案 1 :(得分:1)

sqlite3 gem需要安装sqlite3库(& development headers)。但它不需要命令行sqlite3 utility。

在某些发行版中,这些发行版都打包在一起,但并非总是如此。例如在Ubuntu上,命令行客户端由sqlite3包提供,但是libsqlite3提供了库,因此很有可能在不安装命令行实用程序的情况下安装库