我是关于安装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的模型。
如何解决这个冲突?
答案 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 different。issues。可能影响您未来决策的一件事是,如果您维持现有的create_questions
迁移,则每次升级测量员时都必须应对此冲突。有几个解决方案:
可以更改Surveyor以支持名称间隔,可配置或其他可修改的模型名称。这肯定需要时间,目前此功能没有{{3}}(但可以随意添加)。
您可以重命名迁移,生成器将运行。删除create_questions
和add_correct_answer_id_to_questions
迁移,并从add_api_ids
迁移中删除问题。确保您的问题模型与wiki中记录的测量员问题模型相匹配(我们无法保证图表保持同步)。更确切地说,您可以创建一个空白轨道项目,添加测量员,运行生成器和迁移,然后查看db/schema.rb
。您必须手动将问题模型与测量员同步。
您可以重命名模型。如果它除了测量员之外还有其他功能,那么无论如何你都可能想要这条路线。