2011-12-15 54 views
0

我想承擔一個項目,但我不知道如何處理更新過程。用活躍會員註冊更新網站

通常,當要求更新站點時,備份數據庫&站點文件,然後在本地或在開發服務器上進行更新。然後,當更新完成後,您將它們推送到現場。

我的問題是,我將努力每天註冊新成員,每天發佈博客帖子,並每天在這些帖子上獲取新評論。如果我要在星期一關閉網站,請在測試環境中更新網站,然後在星期五實時更新這些更改,則會覆蓋本週寫入的每位成員以及寫入的博客條目。

那麼最好的方法是什麼?如何在不丟失開發過程中在現場網站上獲得的數據的情況下更新/添加網站功能?毫無疑問,這一定是可能的,因爲像TechCrunch和Gizmodo這樣的高流量網站會一直進行大規模的網站更新,而不會丟失數據。

回答

4

這取決於您所做的更改。它是文件/模板更改還是數據庫更改?

如果只是文件更改,只需將文件和數據庫提交到本地服務器,對文件進行更改,然後僅在完成時將它們(僅限文件)推送到實時服務器。只要沒有發生數據庫更改,那就行得通了。

如果有數據庫更改,事情會變得有點棘手。你基本上會遵循相同的過程,但記下你在本地站點上做出的任何數據庫更改。當所有事情都準備好推送到實時服務器時,除了在更新時讓用戶離線用戶網站,您別無選擇。

然後,您會將所有更新的文件推送到活服務器,並鏡像您在本地服務器上執行的任何數據庫更改(安裝/更新插件等)。當所有這些都完成並測試完畢後,您可以再次將該站點聯機。如果你已經對數據庫變更做了很好的記錄,停機時間應該是最小的。

這取決於能夠阻止對用戶的訪問,但仍允許自己訪問,但這對大多數CMS來說都是標準的。另外,如果你不知道你應該看看把git整合到你的工作流中。如果您所做的更改花費相當長的時間,則需要一個系統,您可以將代碼分發到新版本中,同時仍保持活動服務器上原始代碼的狀態。

這樣,如果在本地開發新功能的過程中出現需要對現場進行修復的緊急修復,則可以切換回主/原分支,並更改不會「包括你在另一個分支上工作的新東西。

0

嗯,我只爲小流量的wordpress/drupal網站做過這個,但沒有「live」版本對我來說不是問題。我有我的開發副本,測試我想要的更改,然後通過FTP將他們備份,將這些更改發送到實時站點。

你打算編輯這些註冊嗎?或者你只是在調整靜態文件?

在wordpress的情況下,我測試一個插件,然後將其安裝到實時網站上。 通常我所做的更改涉及插件/模塊和一些PHP的東西。這顯然不是最細微的解決方案,我很想看看更有知識的人想到什麼。