我是RoR和SQLite的新手;所以原谅我缺乏知识。
我跑了一个脚手架命令:
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 :(得分: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