2011-10-28 49 views
1

我有2個服務器(1發展,1服務)只導入mysql結構或恢復忽略不存在的表和列?

我一直在添加/刪除列,創建/刪除我的開發服務器上的索引,所以這2個服務器也有類似,但不同的MySQL的數據結構。

我知道只有專家結構的選項。 (如-no-data)

有沒有辦法(除mysqldiff.org之類的第三方軟件)只將結構導入到現有數據?

Alternativley,有沒有辦法只導入數據忽略不存在的表和列? (我認爲這可能做的伎倆,如果我備份數據 - >進口結構 - >恢復數據)

在此先感謝

回答

2

我有完全相同的問題。我解決了它這樣的:

就像你已經提到:

備份數據 - >進口結構 - >恢復數據如下

@DEVELOPEMENT (export structure only)<br/> 
    **mysqldump -u user -p –d test > structure-only.sql** 

@DEPLOYMENT (export data only)<br/> 
    **mysqldump -u user -p -t -c test > data-only.sql** 

@DEPLOYMENT (import structure only)<br/> 
    **mysql -u user -p test < structure-only.sql** 

@DEPLOYMENT (import data only)<br/> 
    **mysql -u user -p test < data-only.sql** 

,使得它對於我來說是工作訣竅-c開啓第二次導出(這種方式使用了全列名稱,並且在將新導入的新結構導入時沒有'column count'錯誤)。