我正在按照Michael Hartl的Rails教程学习ruby。
我遇到了这个问题,当我运行bundle exec db:migrate时,正如预期的那样,在我的/ db文件夹中创建了一个development.sqlite3文件。
所以我尝试使用Sqlite数据库浏览器打开该development.sqlite3文件,它一直说这是一个无效的文件。试图在其他浏览器和同样的事情中打开它......所以显然我做错了什么但是找不到解决方法。
以下是一些可能有助于更有经验的开发人员找到原因的提示。
首先我使用的是posgresql,因为这是你在heroku上部署的建议。 我的database.yml文件如下所示:
development:
adapter: postgresql
encoding: unicode
database: sampleapp_dev
pool: 5
username: *****
password: *****
min_messages: WARNING
host: localhost
port: ****
test:
adapter: postgresql
encoding: unicode
database: sampleapp_test
pool: 5
username: ****
password: ****
min_messages: WARNING
host: localhost
port: ****
production:
adapter: postgresql
database: sampleapp_live
username: ****
password: ****
host: localhost
port: ****
这是我运行rake db:migrate
时控制台显示的内容\sample_app>bundle exec rake db:migrate
←[1m←[36mActiveRecord::SchemaMigration Load (1.0ms)←[0m ←[1mSELECT "schema_mi
grations".* FROM "schema_migrations"←[0m
Migrating to CreateUsers (20140902194830)
←[1m←[35m (0.0ms)←[0m BEGIN
== CreateUsers: migrating ====================================================
-- create_table(:users)
←[1m←[36m (159.1ms)←[0m ←[1mCREATE TABLE "users" ("id" serial primary key, "n
ame" character varying(255), "email" character varying(255), "created_at" timest
amp, "updated_at" timestamp) ←[0m
-> 0.1601s
== CreateUsers: migrated (0.1619s) ===========================================
←[1m←[35mSQL (3.0ms)←[0m INSERT INTO "schema_migrations" ("version") VALUES (
$1) [["version", "20140902194830"]]
←[1m←[36m (17.7ms)←[0m ←[1mCOMMIT←[0m
←[1m←[35mActiveRecord::SchemaMigration Load (1.0ms)←[0m SELECT "schema_migrat
ions".* FROM "schema_migrations"
我迷失在这里,我没有看到任何错误,但是当我尝试打开.sqlite3文件以查看它有我期望它的列时,会弹出以下消息:"文件格式无效"
有没有人有类似的问题或有想法解决这个问题?
非常感谢你!
答案 0 :(得分:0)
您的database.yml是为postgres而不是sqlite3配置的。所以你的数据库存在于postgres中。
如果能够正确运行rake db:migrate
,则意味着您具有正确的数据库配置。在控制台上运行rails db
以浏览您的数据库。