2011-03-19 60 views
13

我目前正在與Git上的幾個人開發一個Drupal網站;這個網站使用相同的數據庫而不使用路徑是非常重要的,因爲每個開發者都在另一個目錄上有開發版本。關於Git的Drupal,如何處理數據庫?

我應該怎麼做?

也許我應該讓Drupal和SQLite一起在開發上工作;那麼我們可以將SQLite文件添加到Git存儲庫。

+0

也許你可以將mysql數據庫添加到所有人都可以訪問的外部服務器上,並打開它接受來自Internet的連接?我確實發現這可能是一個性能問題,這一切都涉及到您的互聯網連接。 – Mescalito 2011-03-19 21:22:59

+0

不安全讓所有人都可以訪問數據庫。 我需要查看提交到數據庫以確定它們是否應該被合併到項目中,就像代碼 – Asaf 2011-03-20 04:27:16

+0

您是否只希望跟蹤對結構的更改或結構+數據? – 2011-03-20 06:39:02

回答

14

而不是工作在數據庫級別來存儲您的網站組件,使用代碼。在features模塊的幫助下,Drupal現在支持可導出的視圖,內容類型,字段,輸入格式等。

請參閱The Development -> Staging -> Production Workflow Problem in DrupalCode driven development: using Features effectively in Drupal 6 and 7演示文稿。

+0

最適合的答案,儘管最後我剛剛用備份和遷移模塊導出數據庫似乎是工作得很好 – Asaf 2011-03-22 07:09:42

10

我習慣於Django,它很容易導出數據庫的「夾具」(備份)並將其存儲在像git這樣的版本控制系統中。我最近正在考慮這樣做,但對於WordPress。雖然這樣做,但我偶然發現一些人在談論Drupal的一個令人敬畏的命令行工具,名爲drush:http://drupal.org/project/drush

此工具允許從命令行執行一些令人敬畏的事情,尤其是與模塊(如備份和遷移:http://drupal.org/project/backup_migrate

基本的要點是,當您向/從服務器推/拉數據庫時,將數據庫備份到SQL轉儲,然後您可以在以後恢復數據庫。如果出現任何問題,至少你在git中有DB的備份狀態。我認爲,最後一部分是一個非常大的功能。

這裏有一個同步的本地/直播網站與drush和Git一個偉大的文章:https://web.archive.org/web/20131231204544/http://www.opc.com.au/web-development/drupal-release-management-drush-and-git

下面是如何與包括DB在混帳回購協議的其他用戶的交易:http://drupal.org/creating-drupal-test-sites#comment-2130760

這裏的問題是,你」我們必須小心將數據庫同步到現場。讓多人抓住最新版本的實時數據庫用於測試是很容易和簡單的,但將其他人的本地版本的數據庫推回到生產環境(但只有當多個人在同一個項目中時)可能會很危險。

只是爲了好奇,這裏有一個類似的問題,我問的WordPress的StackExchange網站:https://wordpress.stackexchange.com/questions/12239/migrating-data-between-local-and-development-server - 然後我問(回答)這個問題的一個更具體的版本在這裏:https://wordpress.stackexchange.com/questions/12719/multiple-developers-editors-working-on-a-site-in-progress