2015-06-19 281 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