0

大家好吗?

我在 rake 迁移中“卡住”了 -

错误消息显示 -

迁移到 AddDeviseToUsers (20130628040020) == AddDeviseToUsers:迁移 ======================================= ======== -- change_table(:users) rake 中止!发生错误,此迁移和所有后续迁移均已取消:

PG ::错误:错误:关系“用户”不存在:ALTER TABLE“用户”添加列“电子邮件”字符变化(255)默认''不是NULL/app/vendor/bundle/ruby/2.0.0/gems/ activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:652:in exec' ... /app/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.12/lib/active_record/migration.rb:551:in migrate' /app/vendor/bundle/ruby/2.0.0/gems/activerecord-3.2.12/lib/active_record/railties/databases。 rake:179:in `block (2 levels) in ' Tasks: TOP => db:migrate (通过使用 --trace 运行任务查看完整跟踪) Optinovations-MacBook-Air:omrails Optinovation$ rake db: migrate rake 中止!

不知道如何构建任务 'db:'

https://github.com/optinovation/omrails

Heroku 日志:

2013-06-28T04:30:42.808951+00:00 heroku[api]:使用bundle exec rake db:migratehansean@gmail.com 的命令启动进程 2013-06-28T04:30:48.308515+00:00 heroku[run.8286]:等待客户端2013-06-28T04:30:48.353120+00:00 heroku[run.8286]:使用命令bundle exec rake db:migrate 2013-06-28T04:30:56.086242+00:00 heroku[run.8286] 启动进程:状态从完成变为完成2013-06-28T04:30:56.078116+00:00 heroku[run.8286]:进程以状态 1 退出 2013-06-28T05:31:34.078443+00:00 heroku[web.1]:空闲 2013-06- 28T05:31:36.753947+00:00 heroku[web.1]:使用 SIGTERM 停止所有进程 2013-06-28T05:31:38.664799+00:00 heroku[web.1]:进程以状态 0 退出 2013-06- 28T05:31:38.670876+00:00 heroku[web.1]:状态从向上变为向下

请帮忙!

4

1 回答 1

0

我克隆了您的存储库,看来问题是因为您的用户表已经包含电子邮件和名称列。

在您的 db/schema.rb 文件中,您可以看到 db 架构带有时间戳 (:version => 20130627224008),它早于 2 个待处理的迁移时间戳。如果/当迁移成功,schema.rb 时间戳将更新。

关键是您似乎在 User 表中已经有了 email 和 name 列。请特别查看 schema.rb 中的第 35 行和第 47 行。

我在运行 rake:db migrate 时看到的开发环境中抛出的错误是,“SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email"。

我没有尝试将您的应用程序投入生产,但根据我的经验,PostgreSQL (PG) 和 SQLite 错误对于同一问题可能会略有不同。

于 2013-06-28T09:03:23.623 回答