2009-10-15 119 views
2

如何將數據從假設MySQL數據庫移動到postgres數據庫?將數據從一個數據庫移動到其他數據結構

場景:兩個類似的應用程序。用戶想要從一個應用程序切換到另一個應用程序。 但是他在之前的使用mysql數據庫的應用中保留了某些數據信息。當他切換應用時,他必須將他的數據從舊應用程序移動到使用postgres的新應用程序。

這兩個數據庫都有不同的結構和表格和表格的關係,表格的數量以及它們下面的列。

但如何將日期從一個數據庫移動到其他?

有沒有什麼工具可以做到這一點?如果是這樣任何人都可以提出這樣的工具..

回答

2

它可能不是您所需要的,但this page包括

「下載魔術drupal-mysql2pgsql.pl腳本」

和困難的討論遷移數據。

這可能是不適當的,因爲它可能只遷移Drupal的數據庫(你沒有說哪些應用程序都參與)

你最好的選擇可能是簡單的文本形式,可以導出/備份您的MySQL數據按摩到PostgreSQL格式並導入。這將需要一些腳本/編輯。

這當然是你爲什麼要求提供工具的原因。

1

我會做這樣的:

(僅使用數據庫工具)

  • 在MySQL中創建一個新的數據庫,並與空表填充它,關係完全一樣,我需要遷移到(Postgres的)從原來的MySQL數據庫使用SELECT語句(如新表是舊1瓦特我想的混合),也可以是一些存儲過程的新
  • 複製數據...
  • 然後用傾銷工具,無線我會爲我的新數據庫生成sql腳本以在別處創建。對於MySQL的工具是mysqldump,它有一個選項可以生成postgres兼容腳本:--compatible=postgres和許多其他非常有趣的選項。
  • 在我的新數據庫上運行這些腳本
  • 檢查不一致性,正確...

(使用定製的應用程序+ ORM(例如:C#,NHibernate的) - 更多更長的時間來實現):

  • 我的新DBMS創建我的新的數據庫
  • 創建一個OR映射原始數據庫
  • 用我的ORM
  • 創建的OR映射爲新數據庫
  • 進口原裝數據變換我的數據,以適應我的新的數據庫&我的ORM

插入(使用已知的工具):

很抱歉,但我不知道是否有一個工具,可以做到這一點!

0

有這些場景的整個工具的工具。 Google針對「ETL」,可能還包括您正在處理的數據庫供應商名稱,您可能會發現比您可以在合理的時間內評估更多的解決方案。

1

您所描述的問題是數據倉庫世界中最常見的問題之一,您需要從應用程序數據庫(通常是經典的關係數據模型)獲取數據,並在具有不同結構的數據倉庫中進行整合和集中具有維數據模型的時間)。 ETL作業(Extract Transform Load)所做的工作。

您可以將它們作爲SQL腳本,手工運行或自動運行。你需要建立的是轉換邏輯,然後將其作爲SQL腳本來實現。

有專門的ETL工具,但我認爲他們不會爲您的案例增加太多的價值。

0

我會建議與其他人略有不同的路徑。使用ETL工具來做到這一點。大多數ETL工具都可以完成剛剛描述的工作。如果您不想花任何錢購買「ETL」工具,我的投票將轉到Talend開源ETL工具。我用過它,它非常強大。文檔和示例可在http://www.talend.com中獲得。

1

我還建議使用ETL工具來處理這類工作。應用不同的功能將使您的遷移100%成功。我建議爲商業用戶使用開源工具,如Apatar(apatar.com),爲技術用戶使用Talend(talend.com)。

相關問題