您在這裡

請教關於網站改版的作法?

MarkC's 的頭像
MarkC 在 2011-05-16 (週一) 23:09 發表

若一個已經在服務的Drupal網站,其內容由會員每日皆有更新,
今若要增加該網站功能!我想應該是把該網站複製一份到本機端做模組安裝,view增列及排版....的動作吧!
我想問的是若改版完成,怎麼去更新既有的服務網站?程式部份複製過去是ok,但資料庫部份若複寫似乎不妥(改版期間必定有新資料進去)!還是只要覆蓋某些table就可以!可否給點指引的方向??

通常來說
改版完成後
事先公告此網站需做更新
有幾個小時無法使用
到了那個時間
將網站完全關閉
只允許你本人進入後
將網站檔案及資料庫全部備分
確認OK以後
再將本機修改好的檔案
陸續上傳上去
上傳OK後
執行update.php後
自行測試網站是否有錯誤訊息
假如無
就可直接上線
有的話
看此問題須處理的時間長短
短的話直接處理
長的話可能就要先讓舊網站恢復上線

Drupal Taiwan!
3917-joey91133

Drupal Taiwan!
3917-joey91133

我有問題:(前提是網站不是單一個人使用!會有使用者陸續增加資料)
不是有些設定參數是設在資料庫中的?
若我將改版的資料庫給覆寫了!那運行中的資料內容不就沒了!
若沒將資料庫給複寫!那我新網站的設定不就又要重設?
不知道是否是我的觀念不對 ><\\\

我不曉得你知不知道Drupal有個維護模式
當她打開後
除了管理者以外
皆不可登入
只有管理者能做任何事
之所以叫你先公告
就是讓使用者知道這段時間無法使用此網站
讓使用者明白不是網站掛掉
而是維護
至於你所說的設定參數是指哪些
我不太了解
還有資料庫複寫
當你開了維護模式
一切都不必擔心
因為只有管理者能登入
重設應該是uodate.php的事吧

Drupal Taiwan!
3917-joey91133

Drupal Taiwan!
3917-joey91133

抱歉!或許我的說法不夠明確!我舉個例子好了
4月初 我將服務中的網站程式及資料庫抓下來安裝在單機進行網站改版作業
其中我加了10個Views跟2個模組(og與flag)
~~所增加的Views設定資料不是會寫在資料庫中(Views相關table)?og會增加og相關的tablle,flag會增加Flag相關的table?
直到五月初,我改版完成了
在這一個月中,有不少的user(非admin)在網站中增加內容或回應(node跟comments的相關TABLE資料會有變化)!
可是我單機這邊的node與comments資料庫還是一個月前的!!
造成的兩邊的資料庫都有某些新table或資料內容,
所以我才會提出這個問題來,update不是在更新模組的版本狀況?他可以將兩份資料庫更新成都是最新的資料??

初看您的問題,我猜可能你把「設定」與「內容」二者混在一起考慮。

暫且擱下你的問題,先談改版 / 升級的方法。

以通通學網站來說,我有一個開發站,一個驗收站,一個正式站。(其實開發站有幾個,都是根㯫不同主題在做開發)

當要進行改版的時候,其實,是在驗收站這邊進行。而驗收站是將正式站轉過來的,驗收起始日開始時,驗收站與正式站是一模一樣的,只是主機、網址不同。(或者說,結構與重要內容是一樣的,有時把正式站轉到驗收站時,要先瘦身一下,不然像正式站那麼大時,很多安裝、驗收程序要跑很久。)

在驗收站上進行改版,這時,你會發現一些必要的過程以及許多問題,逐一記錄下來,這是後續你要在正式站上面進行改版升級時的重要腳本。

如此循環幾次,終於在驗收站改版成功,也有了腳本。你就可以規劃時間,進行公告,在預定時間內進行改版。(這時因為有了腳本,你都已經知道要花多少時間,透過什麼過程,處理什麼問題了。)

你上面問的問題,都可以在這個過程中,逐一檢視解決。

升級或改版,毋需在慘叫中進行。

Art (無有多少 | 通通學)

我也想知答案,有沒有人更詳細分享一下
我想大概要靠經驗及個人團隊風格 (每個情況都有差)

我想大網站跟小型網站也有差... 如果是小網站不要弄得過份複雜,能輕鬆對比一下資料庫就過關,就用簡單點的方法,及以你上面所說
如果不是由 D6 -> D7 這種更新,
其實你保留下 NODE 的 DB 不覆蓋,其他直接覆蓋上就可以 (如果 NODE DB 結構 (不是資料) 也動了,會複雜點)

D6 下還有一堆模組的
features,
dbscripts,
deploy
node exports

D7 沒這麼幸運..

Google "drupal staging" 看看

這個似乎要面對面,很互動才能弄懂
或你去這些活動問問,估計他們當中應該有管理過很大,不能超過數小時停站來更新的經驗
http://drupaltaiwan.org/node/5189
http://drupaltaiwan.org/forum/20110502/5156

---
notaBlueScreen

@MarkC,

「除了Node與Comments以外的TABLE都蓋掉正式網站的資料庫」??

千萬不要這麼做。因為,上面那句話,你有辦法在 drupal db 中分出哪些是屬於這個範圍的 table 嗎? 如果分不出來,那麼你會蓋錯 table 或是少蓋掉某些 table。

再者,有些模組會建立自己的 table,同時記住那些 node id, user id, taxonomy id, term id (可能還有一些其它的系統的東西)。這些 table 我們可能無法辨識出,萬一你把它們蓋掉了,這些相關的 id 就不匹配,系統自然出錯。

何不把你在開發網站所做的設定 (view, panels, pane, rules, ...),辨識出來,然後輸出/輸入到另一個網站或者是重做一次。這樣子你都不會動到資料庫內部的東西。 (如果你會 features 模組的話,這些事可以很簡單。)

Art (無有多少 | 通通學)

Feature這功能是轉移設定內容?這個模組網路有視訊教學影片!看了半天還不知道他的用處在哪?若是我猜測的說法的話,這樣子
把開發的所有程式給覆蓋!然後掛上新的模組!然後用Feature帶出所有在開發時的設定!這樣是不是就算完成改版了!!

今天有重新看了一遍Features模組的教學,似乎可以帶不少設定過去另外的網站,
他最後是將網站給清了!然後重新導入Feature
不知道對於已經有資料的網站,這樣帶過去是否可以更新網站功能(不破壞既有內容資料)

對嘛,我想說怎麼會 features 看不出它的用途。

何不就弄出這樣的環境試試看!? 多試試,有益的。

印象中,帶過去之後,會蓋掉原本已存在的。

很好用的。只是,features 有如附身,附上身之後,是無法退駕的。到底合不合用,最好還是自已試試再作決定。

Art (無有多少 | 通通學)