実践
いかにも洗練されていないコードなのですが、、mysqlのダンプファイルを解析してデータベース単位(split1.py)、テーブル単位(split2.py)のSQLスクリプトに分解するスクリプトです。
split1.py:
n = 0
fout = open('db_'+str(n)+'.sql','w')
for line in open('foo.dump','r'):
if line.startswith('CREATE DATABASE'):
n = n + 1
print n
fout.close()
fout = open('db_'+str(n)+'.sql','w')
fout.write(line)
split2.py:
n = 0
fout = open('table_'+str(n)+'.sql','w')
for line in open('db_1.sql','r'):
if line.startswith('DROP TABLE'):
n = n + 1
print n
fout.close()
fout = open('table_'+str(n)+'.txt','w')
fout.write(line)
できあがったSQLのスクリプトは、例えば以下のように利用できます。MySQLの側で大きなスクリプトファイルを受け取る事ができるのならば意味の無い処理ですが。
exec.sh:
for i in $(seq 1 429); do # 429
echo ${i}
mysql -uroot foo < table_${i}.sql
done
python2.6で検証しています。
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について