【问题标题】:rake db:migrate creates a development.sqlite3 file that is invalidrake db:migrate 创建一个无效的 development.sqlite3 文件
【发布时间】:2014-09-08 06:27:47
【问题描述】:

我正在按照 Michael Hartl 的 Rails 教程学习 ruby​​ on rails。

当我运行 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 文件以查看它具有我期望它具有的列时,会弹出此消息:“无效的文件格式"

有没有人遇到过类似的问题或有解决此问题的想法?

非常感谢!

【问题讨论】:

  • 请用它浏览您的数据库sqlitebrowser.org
  • @Rajarshi-Das 是的 .. sqlite 浏览器正是我正在使用的(我试图发布图片,但我还没有足够的声誉)......它说它的文件格式无效.
  • 你在使用postgresql 为什么然后你使用sqlite3文件打开使用pgadmin3来浏览postgresql数据库
  • 谢谢@RajarshiDas!问题是我在 postgresql 中找不到数据库。因为 rails 创建的是一个 .sqlite3 文件。 PgadminIII 不会打开我运行 db:migrate 时创建的 development.sqlite3 文件
  • 您的 database.yml 配置为 postgres 而不是 sqlite。使用 postgres 命令在控制台上查看您的数据库。尝试运行rails db 在控制台上查看您的数据库。

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


【解决方案1】:

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

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

【讨论】:

  • 太棒了!谢谢!我必须先配置 posgresql PATH 变量,然后运行 ​​rails db,它运行良好!非常感谢!
猜你喜欢
  • 2012-12-12
  • 2017-02-28
  • 2016-07-06
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 2012-03-12
  • 2011-08-01
相关资源
最近更新 更多