SQlite3命令不显示rails教程应用程序中的表

时间:2010-11-08 04:52:15

标签: ruby-on-rails sqlite

这可能是我想念的简单事情。我正在AWDWR第4版的轨道练习中完成实用的书架ruby。

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

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

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

然后我尝试列出所有表格:

sqlite> .tables
sqlite> 

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

sqlite3 -line

这里有什么简单的东西吗?

感谢。

4 个答案:

答案 0 :(得分:4)

您需要在 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

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

rails db -p production

答案 1 :(得分:1)

显示sqlite中的所有表:

>select * from sqlite_master

答案 2 :(得分:0)

我有一个类似的问题(没有得到任何回报),但我正在使用Windows,当我使用带路径的驱动器(c:\或d :)时似乎有问题。我能够解决它并从db路径启动sqllite,并仅使用文件名,如下所示:

C:\mydir\sqlite3.exe  -line mydb.db
.tables

C:\mydir\sqlite3.exe
.open mydb.db

C:\mydir\sqlite3.exe
ATTACH "mydb.db" AS db1;

显示表格:

select * from mytable;

select * from db1.mytable;

答案 3 :(得分:0)

按终端进入db文件夹并输入

$ sqlite3 development.sqlite3
SQLite version 3.7.7 2011-06-25 16:35:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .table

它将显示您已制作的表格。