我創建了一個需要兩個文件夾才能正常工作的功能。這些文件夾在rails項目中不存在,所以我必須創建它們。現在我需要推送此功能,以便其他開發人員也可以使用它。我應該使用遷移來創建文件夾嗎?
你認爲什麼是最好的做法:
本地創建的文件夾,並留下一張紙條的地方解釋說,這些文件夾需要創建
創建遷移,將創建這些文件夾
創建文件夾,如果執行不存在,
那麼最佳做法是什麼?
我創建了一個需要兩個文件夾才能正常工作的功能。這些文件夾在rails項目中不存在,所以我必須創建它們。現在我需要推送此功能,以便其他開發人員也可以使用它。我應該使用遷移來創建文件夾嗎?
你認爲什麼是最好的做法:
本地創建的文件夾,並留下一張紙條的地方解釋說,這些文件夾需要創建
創建遷移,將創建這些文件夾
創建文件夾,如果執行不存在,
那麼最佳做法是什麼?
兩種選擇
1.把它們放在版本控制之下。
當開發人員下次檢出文件夾時就會創建。如何將它們添加到VC取決於您使用的工具的性質,但許多工具要求目錄包含一個文件(可能隱藏)。
如果這些文件夾位於源代碼樹中,那麼這很有效。您還可以在類似Unix的操作系統上從源代碼樹中軟鏈接到源樹之外的衆所周知的位置。根據VC系統(我們使用Mercurial),您可以使軟鏈接成爲一個版本化的項目。
2。創建它們作爲你的進程開始
如果你要做到這一點,你還不如去加倍努力,使他們的位置的配置選項。在啓動時,閱讀配置文件,製作文件夾並繼續。
我認爲作爲開發構建的一部分,必須有被調用來執行某些活動的rake任務;將這樣的活動包括在最適合的耙子任務中是適當的。 它應該檢查文件夾,如果它不存在;只是創建它們。遷移創建文件夾真的不是我猜的正確方法。
這是一個很好的問題。
對我來說,我會把文件夾創建在遷移中,當且僅當該遷移的一部分需要文件夾。因此,例如,您正在添加或更新處理附件的表格(例如attachment_fu等),那麼我會考慮將目錄創建/刪除放在那裏。
但是創建目錄是特定於環境的事情(在Windows和* nix等中不同),特別是在涉及權限的情況下。因此,以環境抽象的方式處理這些問題是很有意義的。也許在部署腳本中(如果使用Capistrano)或其他人在Rake任務中提出的建議。
這使得有很大的意義,我越覺得它的更多的我覺得這是去 – marcgg 2009-12-22 12:06:25
這是我們做的正確方法。它只適用於版本控制下的目錄樹(例如不在/ tmp或其他)中,但如果它們很好。我們使用placeholder.txt作爲強制文件強制存在該目錄。 – edebill 2009-12-22 20:45:36
如果使用git,你可以添加一個空白的.gitignore文件到你想保留的目錄。 – Daemin 2009-12-23 01:31:07
@Deamin,這是否真的存儲目錄或只是不抱怨它不知道它是什麼? 我問,因爲Mercurial會忽略目錄,而不是檢查它。 – 2009-12-23 09:49:41