簡體   English   中英

如何在開發人員之間的不同數據庫配置中使用Git?

[英]How can I use Git with different database configurations between developers?

我正在和一個朋友一起在Code Igniter中開發應用程序。 因為我們兩個人在我們的計算機上都有不同的數據庫登錄名,所以我們有不同的“ config / database.php”文件。

如何告訴Git我們兩個都有不同的數據庫配置? 現在,我們每次拉動都會遇到合並沖突,因為“ config / database.php”對我們來說有所不同。

我通常將/application/config/database.php文件重命名為/application/config/database.default.php (版本),然后將原始路徑添加到.gitignore文件。 然后,每個開發人員將默認(未版本化的文件)復制回原始路徑,並根據其本地設置進行編輯。

這成為服務器設置過程中的額外步驟,但可以避免您提到的麻煩。

有兩種選擇:

  1. 不再版本控制此文件(我將git-command留給您進行研究)
  2. 使用.gitignore文件

結果,您將在舊的位置上保存文件,但不再干擾“另一個”文件

我們通常將數據庫配置文件放在.gitignore文件中,以避免出現這些問題。 無論如何,最好不要將這些配置文件及其用戶名/密碼放入git中。
我們將經常保留config/database.yml.template文件(我們使用rails)作為基礎,以使人們復制到config/database.yml然后編輯到其本地計算機上。 database.yml文件名放在.gitignore文件中(在版本控制下共享)。

gitignore的基礎知識可以在這里看到。
其他信息,包括避免出現的陷阱: 忽略已經提交到Git存儲庫的文件

有一個基於環境變量選擇配置的文件。 在服務器的配置中設置該變量。

<?php

if (getenv('WHOS_CONFIG') == 'mine') { … } else { … }

並在服務器配置中(您不會驗證,否則會再次出現相同問題:)
例如對於Apache:

<VirtualHost *>
SetEnv WHOS_CONFIG mine
…

或者,有一個公共的database.php配置文件,其中包括未版本化的database.local.php文件。 后者會覆蓋您需要的變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM