rake db:migrate创建一个无效的development.sqlite3文件

时间:2014-09-08 06:27:48

标签: ruby-on-rails sqlite railstutorial.org

我正在按照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文件以查看它有我期望它的列时,会弹出以下消息:"文件格式无效"

有没有人有类似的问题或有想法解决这个问题?

非常感谢你!

1 个答案:

答案 0 :(得分:0)

您的database.yml是为postgres而不是sqlite3配置的。所以你的数据库存在于postgres中。

如果能够正确运行rake db:migrate,则意味着您具有正确的数据库配置。在控制台上运行rails db以浏览您的数据库。