【问题标题】:Rails , rake db:migrate giving error on cloning app from githubRails,rake db:migrate 从 github 克隆应用程序时出错
【发布时间】:2012-10-07 17:42:51
【问题描述】:

我在新安装的 linux 中从 github 获取了 2 个我的应用程序(它们一直在其他 linux 环境中工作)。我也安装了,mysql,nodejs。我在 rails 创建了一个测试应用程序,并对其进行了测试以使其正常工作。但是我克隆的应用程序在运行 rake db:migrate 时出错。

app1中的错误

rake db:迁移 == CreateItems:迁移============================================== ======= -- create_table(:items) -> 0.0025s == CreateItems:迁移(0.0027s)========================================= ==

== AddDataToTableItems:迁移 ========================================== == 耙中止! 发生错误,此迁移和所有后续迁移均已取消:

用于#的未定义方法“制造商”

app2中的错误

rake db:迁移 耙中止! nil:NilClass 的未定义方法 `[]='

(通过使用 --trace 运行任务查看完整跟踪)

虽然这两个错误不同,但它们应该是相关的(因为应用程序在其他环境中运行)。由于这个问题,我被困了半天。关于相同的任何输入?

PS:应用程序的迁移文件如下: http://dl.dropbox.com/u/18367173/migrate_app2.tar.gz http://dl.dropbox.com/u/18367173/migrate_app1.tar.gz

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

我相信您正在尝试在创建该表列之前在制造商字段中添加一些内容。

确保首先运行所有真正的迁移(那些修改架构的迁移),然后才运行您在数据库中发布数据的迁移。

顺便说一句,您不应该使用迁移来在您的应用中发布示例数据,您应该为此使用 rake 任务或数据库种子。

【讨论】:

  • 谢谢。我在上次迁移中添加列(制造商)。但是之前没有放过数据,对于制造商领域。所以它不应该抛出错误。是的,计划将样本数据移至种子。让我将数据放入种子并检查。
  • 还有第二个应用的任何 cmets 。所有的迁移都是独立的(并且没有种子数据)?感谢您的帮助。
  • 是的,请将 Model.create 放在 db/seeds/rb 中并使用 rake db:seed 运行它们另外,请使用 gui 工具或命令行检查项目表并查看它有什么。
  • 我转移到种子数据,它工作了。谢谢 :) 第二个应用有什么 cmets 吗?
  • @MichaelDurrant 我正在使用 firefox 插件 sqllite manager 来查看表数据。
猜你喜欢
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2019-01-09
  • 2016-11-19
  • 2013-03-02
相关资源
最近更新 更多