2010-07-15 44 views

回答

0

我一直跟蹤所有的變化在兩個方面:

  1. 我保持數據庫的一個空的版本,每次

  2. 我照顧編寫每一個小腳本更新結構做了一點改變。這些主要是DDL腳本(alter table add column等),並且始終保存在一個定義良好的結構中,其中的註釋將語句與Bugzilla/Jira中的任務鏈接起來。 大多數時候我確保這些腳本可以安全地多次執行而不會出錯。

即使對於某些任務我不是唯一進行更改的人,但使用svn同步我們的工作並不困難。

必須在生產環境的至少一個副本上測試所有內容。

另一種方法是使用一些數據庫差異工具,它們會將實時數據庫與您的開發數據庫進行比較,並生成腳本以進行更改。我認爲Navicat有這個功能。有些人認爲這更安全,我認爲這比較混亂。如果你想做得好,你自己做。

+0

IM開發這項對LAMP ... – 5live 2010-07-15 08:27:11

+0

我也是。我使用Ubuntu和CentOS,MySQL和Apache的/ PHP的,我的同事們做了很多在Java中工作,也。我們使用Jira來組織我們的任務(用於使用bugzilla),並且我們將所有代碼保留在顛覆中。我沒有看到如何使用LAMP防止某人以我上面發佈的方式處理數據庫更改。 – ceteras 2010-07-15 08:58:36

0

我會看看DBDeploy

dbdeploy是一個數據庫更改 管理工具。它適用於開發人員 或DBA想要以簡單,受控,靈活和頻繁的方式發展他們的數據庫設計 - 或重構他們的數據庫 - 。

也Theres使用DBDeploy一起Phing一個good tutorial herePHP項目構建系統或構建工具基於Apache Ant的

+0

非常有趣,不幸的是,他們的PHP實現頁面似乎打破了(http://dbdeploy.com/software/php/),那裏沒有任何東西。 在他們的主頁上也很有趣,「根據我們的經驗,我們發現允許人們更改數據庫的最簡單方法之一是使用版本控制的SQL增量腳本。」 - 這就是我實際上沒有這個工具的情況。 – ceteras 2010-07-15 09:05:56

+0

謝謝你看過,這看起來很有趣...我認爲這是我尋找的東西: http://www.davedevelopment.co.uk/2008/04/14/how-to-simple-數據庫的遷移與 - phing-和dbdeploy / – 5live 2010-07-15 09:46:00

1

一個值得注意的實施ZF的應用程序架構經理是Akrabat Db Schema Manager通過Rob Allen。它使用上面@ceteras建議的遷移腳本。上面的鏈接包含代碼,可以與Zend_Tool一起使用,但該庫可以單獨使用。

0

最近的大多數框架提供了一個名爲migrations.的功能。遷移是一種方便的方式,可讓您以結構化和有組織的方式更改數據庫。您可以手動編輯SQL片段,但是您將負責告訴其他開發人員他們需要去運行它們。您還必須跟蹤下次部署時需要在生產計算機上運行哪些更改。

然而,在ZendFramework中,有相同的概念,但名稱爲Db_Schema_Manager。您可以使用它來跟蹤任何開發人員完成的數據庫更改,您只需要重新運行ZendTools。

這裏是Db_Schema_Manager如何被使用的鏈接: http://framework.zend.com/wiki/display/ZFPROP/Zend_Db_Schema_Manager+-+Rob+Allen