以下的LINUX shell script可以搬資料表並修改欄位
#!/bin/bash
echo "start..."
#DUMP遠端資料表2個,不用在Inser資料時LOCK,不然LOCK來不及放掉,其它Client就要等很久。
mysqldump --skip-add-locks -h HOST_IP -u USERNAME -pPASSWORD DBNAME TABLENAME1 TABLENAME2 > /tmp/BACKUP.sql
#搜尋一些東西,替代掉
sed -i -e 's/TABLENAME/NEW_TABLENAME/g' /tmp/BACKUP.sql
sed -i -e 's/utf8mb4_unicode_ci/utf8_general_ci/g' /tmp/BACKUP.sql
sed -i -e 's/utf8mb4/utf8/g' /tmp/BACKUP.sql
sed -i -e 's/InnoDB/MyISAM/g' /tmp/BACKUP.sql
sed -i -e 's/`Query` text COLLATE utf8_general_ci COMMENT/`Query` text COLLATE utf8_general_ci NOT NULL DEFAULT "" COMMENT/g' /tmp/BACKUP.sql
#導入資料表到新的資料庫
mysql -u username -pPassword DBNAME < /tmp/BACKUP.sql
#修改一些資料表格式,剛才沒替代掉的
mysql -u username -pPassword -e "ALTER TABLE mytablename CHANGE colname newcolname CHAR(191)_type" DBNAME
mysql -u username -pPassword -e "ALTER TABLE mytablename MODIFY COLUMN colname VARCHAR(191)_newtype" DBNAME
echo "finish"
沒有留言:
張貼留言