您正在本地開發現有網站的新版本。除此之外,您還正在對本網站的數據庫架構進行一些更改(通過phpMyAdmin)。將遠程數據庫與本地數據庫同步
新版本已準備就緒,您想將其上傳到遠程服務器。
您可以通過FTP上傳文件(很容易),現在的文件都是最新的。
如何更新數據庫架構,並確保它是在同步與當地的一個?
您正在本地開發現有網站的新版本。除此之外,您還正在對本網站的數據庫架構進行一些更改(通過phpMyAdmin)。將遠程數據庫與本地數據庫同步
新版本已準備就緒,您想將其上傳到遠程服務器。
您可以通過FTP上傳文件(很容易),現在的文件都是最新的。
如何更新數據庫架構,並確保它是在同步與當地的一個?
我們將數據庫更改所需的SQL語句保存在文件中,並由該版本標記。每當必須註冊新版本時,我們將其導入到數據庫中。首先進入測試服務器(我們的實時服務器的精確複製品減去實時數據;用隨機值替代)。如果一切正常,我們可以轉到我們的實時服務器上。
總結:在每個版本更新時,將整個文件導入到實時數據庫中。該文件也受版本控制,因此可以輕鬆回滾任何不正確的語句。
如果你迷路或不知道了,需要在生產服務器上什麼樣的變化,你可以使用MySQL工作臺(從MySQL的免費工具)。這個工具允許加載你的2個數據庫的模式,將它們進行比較並生成一個從一個到另一個的腳本。這樣你可以確定2模式將是相同的。
我想有其他工具做同樣的,但MySQL工作臺的工作做得很好,我在幾年前。
但不要誤會我的意思:這是不是管理的變化,只是一種擺脫困境的好辦法。源代碼控制的解決方案是一個更好的做法。
雖然它相當簡單在你自己的代碼來實現這在實踐中(就像選擇數據的DESC和SHOW回表)它是一個非常糟糕的主意自動化架構更改;通常這些將在操作期間鎖定表 - 因此,識別更改然後將其應用於受控發佈(當Web服務器被禁用/修改以提供'正在構建中'/正在運行時會更有意義備用數據庫)。