【发布时间】: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