Surveyor gem中的冲突模型名称

时间:2012-07-23 07:40:09

标签: ruby-on-rails gem surveyor-gem

我是关于安装Surveyor gem,我按照那里的说明但是当我执行时 这行安装gem组件:

script/rails generate surveyor:install

我遇到了这些冲突

    conflict  db/migrate/20120716110951_create_questions.rb
Overwrite /home/saka/modares/db/migrate/20120716110951_create_questions.rb? (enter "h" for help) [Ynaqdh] h

我知道问题是gem和现有应用程序中的冲突模型名称,因为我已经有一个名为Question的模型。

如何解决这个冲突?

2 个答案:

答案 0 :(得分:2)

如何重命名问题模型?您基本上必须创建用于重命名的迁移(如果您还没有生产数据,则在不需要迁移的情况下更改初始迁移)并在应用中查找所有出现的问题/问题并相应地重命名。这是一项工作,但不是一个真正的问题。

答案 1 :(得分:2)

此行为是验船师做出设计决定的结果。我们希望每次升级测量员时都允许人们运行rails generate surveyor:install,并获得新的迁移和更改的文件。 generator finds migrations with the same class name, preserves the timestamp, and presents the conflict to the user if it is differentissues。可能影响您未来决策的一件事是,如果您维持现有的create_questions迁移,则每次升级测量员时都必须应对此冲突。有几个解决方案:

  1. 可以更改Surveyor以支持名称间隔,可配置或其他可修改的模型名称。这肯定需要时间,目前此功能没有{{3}}(但可以随意添加)。

  2. 您可以重命名迁移,生成器将运行。删除create_questionsadd_correct_answer_id_to_questions迁移,并从add_api_ids迁移中删除问题。确保您的问题模型与wiki中记录的测量员问题模型相匹配(我们无法保证图表保持同步)。更确切地说,您可以创建一个空白轨道项目,添加测量员,运行生成器和迁移,然后查看db/schema.rb。您必须手动将问题模型与测量员同步。

  3. 您可以重命名模型。如果它除了测量员之外还有其他功能,那么无论如何你都可能想要这条路线。