在測試環境的測試資料庫欄位有所更動後,例:新增刪除欄位,修改欄位屬性...etc。需要將該更動同步到正式環境上且不把測試資料放到正式資料庫中。如MSSQL的DTS,只轉schema
資料庫:MySQL
檢查:
http://stackoverflow.com/questions/6679399/compare-two-mysql-databases-on-command-line-with-a-free-tool
只比較table:
$ mysql -u whatever -e "describe table" database1 > file1.txt $ mysql -u whatever -e "describe table" database2 > file2.txt $ diff file1.txt file2.txt
其他檢查方法:
http://stackoverflow.com/questions/225772/compare-two-mysql-databases
這邊有列出一些工具,如 Toad ,但看起來是windows電腦才能用,我手上的電腦灌linux
Schema Sync系統需求:
Python 2.4, 2.5, or 2.6
MySQL, version 5.0 or higher
MySQLdb, version 1.2.1p2 or higher
SchemaObject 0.5.3 or higher (Auto installed with Schema Sync)
安裝Schema Sync:
http://schemasync.org/
下載 SchemaSync-0.9.2 檔後解壓縮
$ tar xvzf SchemaSync-0.9.2.tar.gz $ cd SchemaSync-0.9.2 $ sudo python2 setup.py install
注意:因為Schema Sync 需求的環境是 python 2.4~2.6,因為我的arch linux有裝python2和python3( python -> python3,預設python3 ),把python指到python2或直接用python2安裝
參考連結: http://stackoverflow.com/questions/15400985/how-to-completely-replace-python-3-with-python-2-in-arch-linux
MySQLdb 一樣去下載檔案解壓縮後用這個指令安裝
$ sudo python2 setup.py install
用法:
$ schemasync mysql://user:pass@dev-host:3306/dev_db mysql://user:pass@prod-host:3306/production_db
出現錯誤:
Schema Sync requires MySQL version 5.0+ (source is v10.0.12-MariaDB-log)
原因:
因為Arch Linux的pacman安裝的資料庫是MariaDB( MySQL的一個開源分支 )
登錄後資料庫介面是
MariaDB [mysql]>
接著手動安裝MySQL
沒有留言:
張貼留言