2015-06-19 282 views
0

我是RoR和SQLite的新手,所以請原諒我缺乏知識。Ruby on Rails - Sqlite3

我跑了腳手架命令:

rails generate scaffold User password:string email:string 

一切運行良好,接下來我跑了rake db:migrate命令,終端表明一切都被創建。

現在我打開了一個新的終端,我想驗證該表是否已創建,所以我在終端上點擊sqlite3並運行.tables命令,它顯示空值。

所以這次我跑sqlite3 db/development.sqlite3命令和命中.tables it說無法打開數據庫文件

下一個我試圖sqlite3的development.sqlite3和命中.tables命令,並沒有給出結果。

我不明白我在做什麼錯?我無法找到一個體面的教程,通過這個教程。請幫忙。

這裏是我的.yml文件:

default: &default 
    adapter: sqlite3 
    pool: 5 
    timeout: 5000 

development: 
    <<: *default 
    database: db/development.sqlite3 


test: 
    <<: *default 
    database: db/test.sqlite3 

production: 
    <<: *default 
    database: db/production.sqlite3" 
+0

'軌console'比'User.all '並檢查用戶是否被創建 – gabrielhilal

+0

只是從字面上重播。 'rails new whatevs && cd whatevs'; 'rails g scaffold用戶密碼:string email:string'; 'rake db:migrate'; 'sqlite3 db/development.sqlite3'; '.tables':輸出'schema_migrations用戶'。一切都好。 –

+0

我想從SQLITE控制檯進行檢查...... –

回答

1

完成後,從劃痕,行動這個序列產生預期的結果:

SQLite version 3.8.2 2013-12-06 14:53:30 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> .tables 
schema_migrations users 

所以,問題是具體到你的數據庫。該文件很可能已損壞。有很多原因可能會發生,最簡單的解決方法(如果該文件中的數據並不重要)只是擦數據庫文件並重新創建它:

rm db/development.sqlite3 
rake db:create db:migrate