这可能是我缺少的简单事物。我正在研究AWDWR第4版中实用的轨道式书架红宝石。

一切进展顺利,然后我进入了您进入sqlite 3命令行工具的部分,以确保它捕获了订单信息。

当我尝试为订单运行select语句时,我得到:

sqlite> select * from orders;
SQL error: no such table: orders


然后我尝试列出所有表:

sqlite> .tables
sqlite>


我按照书中的说明进入sqlite命令行:

sqlite3 -line


有什么简单的我想念的吗?

谢谢。

最佳答案

您需要在sqlite3命令行上指定数据库文件名。通常*,如果您不提供数据库文件名,则它将开始在空的临时内存数据库中运行。

*
如果没有其他参数,我手头的版本(sqlite3 3.7.2)实际上将-line作为数据库文件名。这意味着我最终得到一个名为-line的文件;可以使用rm ./-line删除此文件。


您可能需要这样做(从应用程序的根目录运行):

sqlite3 -line db/development.sqlite3




如果您的项目使用的是Rails 3,则可以使用以下命令:

rails db


如果需要-line行为,则可以在sqlite3命令行中使用.mode line

如果要访问非默认环境的数据库,只需附加环境名称:

rails db staging


如果要自动使用配置中的用户名和密码,也可以添加-p(sqlite3不需要用户名或密码,因为它使用普通的Unix权限):

rails db -p production

关于ruby-on-rails - SQlite3命令未从Rails教程应用程序显示表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4121391/

10-12 07:33
查看更多