2008-11-09 79 views
0

我目前正在使用PHP和MySQL的Web應用程序,但我沒有shell訪問服務器(已經在這個問題上工作了......)。目前,我在本地計算機上使用subversion進行源代碼控制,並且在本地計算機上有一個數據庫,可以對其進行所有更改。然後,一旦我測試了本地計算機上的所有更新,我就手動部署該網站。我使用filezilla上傳更新的文件,然後轉儲我的本地數據庫並將其導入到部署服務器上。什麼是通過FTP部署PHP/MySQL站點的好方案?

顯然,我目前的解決方案沒有任何接近理想的地方。對於一件重要的事情,我需要一種方法來避免複製我的.svn文件......有誰知道這個特定設置的最佳解決方案是什麼?我看着Capistrano的一點,螞蟻,但是這兩個看起來像這將是我沒有shell訪問一個問題...

回答

1

你可以做一個顛覆出口(而不是結算)從你的工作拷貝不同的目錄,那麼它會刪除所有.svn文件的東西你

3

我使用Weex同步通過FTP服務器。 Weex基本上是一個非交互式的FTP客戶端,可以自動上傳和刪除遠程服務器上的文件/目錄。它可以配置爲不上載某些路徑(如SVN目錄),以及保留某些遠程路徑(如日誌目錄)。

不幸的是我手頭沒有解決同步MySQL數據庫,以及...

也許你可以登錄「SQL補丁腳本」您的數據庫更改(或使用完全轉儲),上傳這些通過weex和呼叫一個遠程PHP腳本,後面會執行SQL修補程序。

2

我在生產中使用rsync,但你可以這樣做:

向您的站點添加一個配置表來保存您當前所處的數據庫級別。

開發過程中,將每組SQL更改存儲到一個文件中(我使用類似delta_X-up.sql的東西)。這些也會留在您的SVN中。因此,例如,如果您在delta_5並在當前版本和新版本之間添加一個表格,則所需的所有SQL將放入delta_6-up.sql

當需要構建時,導出回購而不是使用結帳。這可以讓你忽略所有的SVN cruft,因爲你不需要它進入生產。

使用Weex將這些更改推入生產(這將是我將使用rsync,但您沒有該選項)。調用一個遠程腳本來檢查你的配置數據庫,以查看你當前的增量級別,用你的delta_x-up.sql文件解析這個目錄,看看是否有新的增量。如果有,請閱讀它們並在其中運行SQL。

+0

好主意。我想我會嘗試一下。 – 2008-11-10 03:45:11