这可能是我想念的简单事情。我正在AWDWR第4版的轨道练习中完成实用的书架ruby。
一切进展顺利然后我遇到了你进入sqlite 3命令行工具的部分,以确保它捕获订单信息。
当我尝试为订单运行select语句时,我得到:
sqlite> select * from orders;
SQL error: no such table: orders
然后我尝试列出所有表格:
sqlite> .tables
sqlite>
我按照书中的说明进入sqlite命令行:
sqlite3 -line
这里有什么简单的东西吗?
感谢。
答案 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
它将显示您已制作的表格。