2010-07-30 110 views
1

我一直在我自己的計算機上用我自己的數據庫和一切工作在我自己的xampp服務器上的一個網站,到目前爲止它一直非常流暢,令人驚訝。現在我想將它上傳到主機,並且我找到了一個免費的Web主機,並且我能夠通過dreamweaver/ftp上傳該網站。我將我的數據庫導出到SQL查詢中,然後在實時數據庫上運行該查詢,以便它們具有相同的數據。php和數據庫問題

我很好奇,什麼是保持這些數據庫同步的最佳方式?

1)在我的header.php中,我爲本地數據庫指定了一些連接變量,我必須確保在上傳header.php到站點時更改它們,以便它們具有遠程數據庫的正確連接變量。也許如果我在我的託管服務器上有一個文件,並且我的本地服務器上有一個文件指定了連接信息,並且從不與它們混淆? 2)如果我在本地數據庫中更改了某些內容,我必須複製SQL並在遠程數據庫中運行它。有處理這個問題的好方法嗎?

再次感謝!

回答

0
+0

我認爲他想開發數據庫和生產數據庫,其複製可能不會,因爲如果你,如果你正在談論改變打破了發展DB#2的東西,將核彈生產以及... – ircmaxell 2010-07-30 17:42:45

+0

)幫助數據庫數據和你的開發者機器的結構,然後你可以創建一個sql文件。該文件將是一個SQL文件,你需要運行現場服務器上的文件採取有效的變化 – Autolycus 2010-07-30 17:43:36

+0

他說他想要同步時間 – Autolycus 2010-07-30 17:44:05

0

對於#1,您可以這麼做 - 大多數人採用的路線 - 或者在加載服務器特定配置之前使配置文件檢查IP。如果IP是127.0.0.1,則加載您的開發配置。如果它是主機的IP,它會加載一個不同的配置。

我個人不知道更好的方法來處理#2。所以,這個答案必須是不完整的。

0
  1. 我通常保持模板的東西從數據庫連接,全局變量的東西,並與像「的init.php」或「config.php文件」包含文件會話的東西分開。當你更新你的東西時,很可能你不需要覆蓋該文件。我使用linux,所以我使用'mysqldump'來獲取.sql文件,上傳到服務器,然後上傳'mysql -u user -p databasename < database.sql'。如果有一種我不知道的更快的方法,那將是非常棒的。

0

1:是的,創建一個config.php文件,其中包含特定於服務器的信息並在需要時包含它。這是非常普遍和正常的。理想情況下,您可以將此文件與其他文件分開,以便輕鬆獲取所有應用程序文件並將其複製到實時服務器,而無需複製配置文件。在某處保留你的實時配置文件的備份,因爲有一天你會覆蓋它,如果你不必爭先恐後地找出活的數據庫密碼是什麼,那麼這對你的心臟會更好。

2:有一些自動處理方法,但它們非常複雜。我通常做的是創建一個名爲changes.sql的空文本文件或其他東西。在對dev數據庫進行更改時,我將CREATE TABLE和ALTER TABLE等查詢粘貼到changes.sql文件中。這樣,當我準備更新實時網站時,我有一個文件包含我需要對實時服務器所做的所有更改。更新完成後,我將changes.sql文件保存在某處併爲下一次更改創建一個新的空文件。

更多2:你也可以做一個整個開發數據庫的轉儲,並實時複製它。儘管如此,大多數網站都擁有活動服務器上的數據,這些數據不應被銷燬或複製到開發用戶信息,訂單,登錄跟蹤,用戶評論等等。所以你通常不會只想用開發數據替換所有的實時數據。