2010-11-08 63 views
2

這可能是我錯過的簡單東西。我正在AWDWR第4版中通過實用的書架ruby進行鋼軌練習。SQlite3命令沒有顯示來自rails的表教程應用程序

一切都很順利,然後我跑進了你進入sqlite 3命令行工具的部分,以確保它捕獲訂單信息。

當我試圖運行命令select語句,我得到:

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

然後我試圖列出所有表:

sqlite> .tables 
sqlite> 

我去的每一條說明sqlite的命令行在書中:

sqlite3 -line 

有沒有簡單的東西我在這裏失蹤?

謝謝。

回答

4

您需要將sqlite3的命令行上指定一個數據庫文件名。通常爲*,如果您不提供數據庫文件名,那麼它將開始在空的臨時內存數據庫上運行。

* 版本我手邊(sqlite3的 3.7.2)實際發生-line爲數據庫文件名,如果沒有額外的參數。這意味着我最終得到一個名爲-line的文件;這個文件可以用rm ./-line刪除。

你可能想這(從您的應用程序的根目錄下運行):

sqlite3 -line db/development.sqlite3 

如果你的項目使用Rails 3,那麼你可以使用這個:

rails db 

如果您需要-line行爲,您可以使用.mode linesqlite3命令行。

如果您要訪問的數據庫對非缺省環境,只是追加環境名稱:

rails db staging 

您還可以,如果你想自動使用從配置的用戶名和密碼添加在-psqlite3的因爲它使用普通的Unix許可不需要用戶名或密碼):

rails db -p production 
+0

謝謝克里斯。我很感激。只要我可以到達我的開發機器,我會盡快完成這一步。 – someoneinomaha 2010-11-08 15:27:35

+1

我看着文件系統,看到數據庫名稱是:development.sqlite3所以我跑了:sqlite3 -line db/development.sqlite3,我能夠看到表格並針對它們運行查詢。我想知道是否我在教程的某個地方做了一個失誤,讓我走了這條路。再次感謝你的幫助! – someoneinomaha 2010-11-08 19:03:25

+0

再看看今晚的這本書,我意識到,這本書在我的iPad上的定位使命令行不清楚。正確的道路就在那裏,如果我把iPad翻過來,所以我可以看到整個頁面,這是非常清楚的。 – someoneinomaha 2010-11-09 02:40:22

1

要在sqlite的顯示所有表:

>select * from sqlite_master 
+0

感謝您的回覆。如果我運行該sql語句,我仍然沒有得到任何迴應:sqlite> select * from sqlite_master; sqlite> – someoneinomaha 2010-11-08 05:09:29

0

我有一個類似的問題(沒有得到任何東西),但我使用的是Windows ,並且當我使用具有路徑(c:\或d :)的驅動器時,它似乎有問題。我能夠解決這個問題,並從數據庫路徑發射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; 
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 

,它會告訴你做的表。

相關問題