Ruby on rails rake db:seed在没有挂起迁移时失败

Ruby on rails rake db:seed在没有挂起迁移时失败,ruby-on-rails,ruby,postgresql,Ruby On Rails,Ruby,Postgresql,我正在运行一个(以前工作正常)种子文件,如下所示: 我用rake db:migrate:status检查是否有挂起的迁移,并且所有迁移都是“启动”的 关于其他背景,以下是让我想到这一点的原因: 在6年前的Rails代码中工作 启动功能“a”的分支 包裹特征“A”。签出功能“B”的新分支 主机-->“A”->“B” 完成功能“B”+提交 签出“A”进行重构 为“A”的迁移添加列(还没有任何东西与master合并,所以我想我可以删除并重建我的dev db,没问题) “A”+提交的包装重构 结帐分行

我正在运行一个(以前工作正常)种子文件,如下所示:

我用
rake db:migrate:status
检查是否有挂起的迁移,并且所有迁移都是“启动”的

关于其他背景,以下是让我想到这一点的原因:

  • 在6年前的Rails代码中工作
  • 启动功能“a”的分支
  • 包裹特征“A”。签出功能“B”的新分支 主机-->“A”->“B”
  • 完成功能“B”+提交
  • 签出“A”进行重构
  • 为“A”的迁移添加列(还没有任何东西与master合并,所以我想我可以删除并重建我的dev db,没问题)
  • “A”+提交的包装重构
  • 结帐分行“B” 9将“A”合并为“B”
  • 下降分贝
  • 使用
    bin/rake数据库创建数据库:Create DB:schema:load
    All good
  • 运行rake db:seed,什么都不会发生
  • 使用trace运行并获取上面看到的错误
  • 我不知道是什么原因造成的
  • 更多上下文

    -Ruby 2.3.1 -轨道4.2.7.1
    -Postgresql 9.6.2

    看起来您实际上没有问题<如果挂起的迁移恰好是即使是成功的种子输出的最后一条跟踪线,则代码>中止。在我的机器上完全工作的Rails env输出相同的输出,但工作正常(包含0个错误代码):


    对于记录,
    db:seed
    通常不打印输出。

    要添加到这一点,可以在种子中添加一些消息,如a=User.new,然后如果a.savep,则添加“User 1 saved”
    $ be rake db:seed --trace
    ** Invoke db:seed (first_time)
    ** Execute db:seed
    ** Invoke db:abort_if_pending_migrations (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Execute db:abort_if_pending_migrations
    $ echo $?
    0