【问题标题】:Stuck in rake migration陷入 rake 迁移
【发布时间】:2013-06-28 04:43:09
【问题描述】:

大家好吗?

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

错误信息显示-

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

PG::Error: 错误:关系“用户”不存在: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个级别):TOP => db:migrate(请参阅 通过使用 --trace 运行任务进行完整跟踪) Optinovations-MacBook-Air:omrails Optinovation$ rake db: 迁移 rake 中止了!

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

https://github.com/optinovation/omrails

Heroku 日志:

2013-06-28T04:30:42.808951+00:00 heroku[api]:启动过程 命令bundle exec rake db:migrate by hansean@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]:状态从上改变 向下

请帮忙!

【问题讨论】:

标签: ruby-on-rails migrate rakefile


【解决方案1】:

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

在您的 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 错误对于同一问题可能略有不同。

【讨论】:

  • 嗯,接下来要做什么更多地取决于您要完成的任务的上下文。我能够在本地开发(rails s)中启动应用程序并登录,所以我不确定这些迁移是否必要。如果您无法让您的应用在生产环境中运行 (omrails.herokuapp.com),请尝试运行“heroku 日志”并查看引发了哪些错误。
  • Mike,是的,我可以在本地主机上运行应用程序,但不能在 heroku 上运行。我在原始内容中发布了 heroku 日志供您查看 -
  • 嗨 Optinovation - 我进一步查看并注意到您的 app/db/schema.rb 文件显示了三个表(安装、用户和视图),但这些表中的每一个都有相同的列。就个人而言,我没有完成 OneMonthRails 教程,但是查看作者在github.com/mattangriffel/omrails/blob/master/db/schema.rb 的 schema.rb,他的 db 结构看起来与您的有点不同。我可能会建议您相对于教程说明回顾您迄今为止的工作,看看您是否不小心偏离了方向。保持积极,这是学习的过程。
  • Optinovation - 请在解决此问题后考虑报告。祝你好运。
猜你喜欢
  • 2013-06-01
  • 2013-06-28
  • 2013-02-01
  • 2011-08-19
  • 2012-08-27
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多