2010-06-29 70 views
2

我在生產服務器中有一個rails應用程序存儲庫。gitignore中的文件

在回購存在的.gitignore文件:

... 
    config/database.yaml 
... 

每一個開發客戶有不同的配置/ database.yaml克隆回購。

我的問題是這樣的:

database.yaml是的.gitignore,然後當我運行的git克隆(在服務器上)的database.yaml將不會被創建,但我需要它。

我以爲比我做錯了什麼。 你能看到我的錯誤在哪裏嗎?

謝謝你, 亞歷山德羅

回答

10

在我的項目,我通常做一個可用的數據庫配置的副本在database.example.yml,那麼當有人克隆項目,database.example.yml複製到database.yml並進行必要的更改。

0

所有這些database.yaml文件都有一些共同之處:您可以提交一個基本配置,並讓所有開發客戶端在它們自己的分支中維護一個分支,並填充適當的設置;只要更新了它們,它們就可以在主分支中的基本配置之上重新綁定。

0

aleds - 在存儲庫中使用database.yml通常是一個糟糕的主意,這就是爲什麼您在.gitignore中看到它的原因。 robertokl是正確的提供模板文件。

1

保持一個模板像database.example.yml作爲robertokl表明

,當你應用程序部署到你應該使用類似capistrano和您的Capistrano的配方(腳本)的一部分,生產服務器會重命名文件或到正確的database.yml文件放置在配置目錄

3

(這裏是my original answer拷貝到您first question

你不是版本正確的文件。

您應該版本:

  • 一個database.yaml.template
  • 2個文件(一個用於服務器值,一個是普通的客戶端值)
  • 1腳本能夠在結賬建立database.yaml

該腳本將由smudge step of a filter driver調用。

alt text

所得database.yaml將是「私人」(永不版本/推動或拉動),並且可以在將被修改。