2014年10月27日 星期一

安裝schema sync[未解決]

目標:
在測試環境的測試資料庫欄位有所更動後,例:新增刪除欄位,修改欄位屬性...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

沒有留言:

張貼留言