2012-08-12 35 views
0

我想在coursera的SAAS課程中學習rails。軌道中的測試數據庫/表的名稱?

我跑

rake db:migrate 
db:test:prepare 

創建一個測試數據庫,並針對它運行一些黃瓜步驟。

我需要一種方法在測試中的相應電影表中插入一些電影。

我可以在db文件夾中看到一個scehma.rb,並且在模型中,還有類Movie創建的Movie表< ActiveRecord :: Base,但是沒有爲測試dbs創建的東西嗎?

我在哪裏可以找到testDB創建文件,我如何找到我的數據庫中的所有表名。我甚至不知道該數據庫名運行:

SELECT * FROM dbname.sqlite_master WHERE type='table'; 

此外,如果有這樣做,請分享你的經驗,一些更好/更簡單的方法。 我希望這些建議能夠在5分鐘內完成,而不是花時間調試安裝新的gem等,儘管您可以將它們作爲附加評論提及。

感謝

回答

0

所有環境DB數據(名稱和配置)(測試,開發,督促)在config -> database.yml文件定義。像這樣:

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 
+0

Thorks Alder for the pointer。那麼test.sqlit3是數據庫名稱? ..這沒有爲我工作sqlite> SELECT * FROM test.sqlit3.sqlite_master WHERE type ='table'; 錯誤:接近「。」:語法錯誤。如何找到db和測試表的名稱 – codeObserver 2012-08-12 23:59:48

+0

不同的數據庫是不同的文件,因此您不應該使用它的名稱。當你使用rails控制檯時你使用了開發數據庫,​​所以你不能從測試數據庫中選擇一些東西。你用什麼查詢?也許aome sql編輯器或不適合。 – zishe 2012-08-13 00:42:24

+0

你可以連接到測試db'rails db test'。但我不知道如何選擇列。 – zishe 2012-08-13 00:54:55