diff options
author | Assim Deodia <assim.deodia@gmail.com> | 2008-06-18 04:44:47 (GMT) |
---|---|---|
committer | Assim Deodia <assim.deodia@gmail.com> | 2008-06-18 04:44:47 (GMT) |
commit | 8934f10685a6cec558cc9b9aeacf6c530b2cc6c6 (patch) | |
tree | 3c3fa0ad5edcefda2639867a170c83e3d677a4d6 /conv.sh | |
parent | 2385830803ca8b6eaf9a2666f26c0f5586167c46 (diff) |
dictionary and word class interface for sqlite DB
Diffstat (limited to 'conv.sh')
-rw-r--r-- | conv.sh | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -0,0 +1,43 @@ + #!/bin/sh + + if [ "x$1" == "x" ]; then + echo "Usage: $0 <dbname>" + exit + fi + + if [ -e "$1.db" ]; then + echo "$1.db already exists. I will overwrite it in 15 seconds if you do not press CTRL-C." + rm $1.db + fi + + mysqldump -h 10.250.100.69 -u assim -p --compact --compatible=ansi --default-character-set=binary $1 | + grep -v ' KEY "' | + grep -v ' UNIQUE KEY "' | + grep -v ' PRIMARY KEY ' | + sed 's/ unsigned / /g' | + sed 's/ auto_increment/ primary key autoincrement/gi' | + sed 's/ smallint([0-9]*) / integer /gi' | + sed 's/ tinyint([0-9]*) / integer /gi' | + sed 's/ int([0-9]*) / integer /gi' | + sed 's/ character set [^ ]* / /gi' | + sed 's/ enum([^)]*) / varchar(255) /gi' | + sed 's/ on update [^,]*//gi' | + perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' | + perl -pe ' + if (/^(INSERT.+?)\(/) { + $a=$1; + s/\\'\''/'\'\''/g; + s/\\n/\n/g; + s/\),\(/\);\n$a\(/g; + } + ' > $1.sql + cat $1.sql | sqlite3 $1.db > $1.err + ERRORS=`cat $1.err | wc -l` + if [ "$ERRORS" == "0" ]; then + echo "Conversion completed without error. Output file: $1.db" + rm $1.sql + rm $1.err + else + echo "There were errors during conversion. Please review $1.err and $1.sql for details." + fi + |