我创建了一项功能,需要两个文件夹才能正常工作。这些文件夹在rails项目中不存在,所以我不得不创建它们。现在我需要推送这个功能,以便其他开发人员也可以使用它。
您认为最佳做法是什么:
在本地创建文件夹并在某处留言,说明需要创建这些文件夹
创建将创建这些文件夹的迁移
如果文件夹在执行时不存在,则创建
那么关于此的最佳做法是什么?
答案 0 :(得分:6)
两个选择
1。将它们置于版本控制之下。
当开发人员接下来检查时,文件夹将被创建。如何将它们添加到VC取决于您正在使用的工具的性质,但许多工具要求目录包含一个文件(可能是隐藏的)。
如果文件夹位于源树中,则效果很好。您还可以在类似Unix的操作系统上从源树内软链接到源树之外的众所周知的位置。根据VC系统(我们使用Mercurial),您可以将软链接设为版本化项目。
2。在流程开始时创建它们
如果您打算这样做,您可以加倍努力,使其位置成为可配置选项。启动时,阅读配置文件,制作文件夹并继续。
答案 1 :(得分:3)
我认为作为开发构建的一部分,必须有rake任务被调用来执行某些活动;将这种活动纳入适合最合适的佣金任务是适当的。 它应该检查文件夹以及它是否不存在;只是创造它们。创建文件夹的迁移实际上并不是我认为的正确方法。
答案 2 :(得分:2)
我将其包含在bootstrap rake任务中。
答案 3 :(得分:2)
这是一个很好的问题。
对我来说,我会将文件夹创建放在迁移中,当且仅当该文件夹是迁移的一部分时才需要。因此,例如,您正在添加或更新处理附件的表(例如使用attachment_fu等),那么我会考虑将目录创建/删除放在那里。
但是,创建目录是特定于环境的事情(Windows vs * nix等不同),尤其是涉及权限的情况。因此,以环境抽象的方式处理这些问题是有意义的。也许在部署脚本中(如果使用Capistrano)或其他人在rake任务中建议。
答案 4 :(得分:0)
我会将它们添加到存储库中。也许如果它包含临时数据,我将忽略其中的内容。