Skip to content

Instantly share code, notes, and snippets.

@seeschloss
Created June 3, 2015 11:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seeschloss/05d935606ad1f654b9f0 to your computer and use it in GitHub Desktop.
Save seeschloss/05d935606ad1f654b9f0 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
FILE="$(mktemp)"
trap "rm $FILE; exit" EXIT
DEBUG=0
if test "$1" = "-d"; then
DEBUG=1
shift 1
fi
SQLFILE="$1"
function mysql2sqlite() {
fgrep -v 'CREATE DATABASE' \
| grep -v '^USE' \
| grep -v '^SET' \
| sed 's/AUTO_INCREMENT//I' \
| sed 's/collate [^ ,]*//I' \
| fgrep -v 'KEY' \
| fgrep -v 'LOCK' \
| sed -e ':a' -e 'N' -e '$!ba' -e 's/,\n)/)/g' \
| sed 's/ENGINE=.*;/;/' \
| sed 's/unsigned//I' \
| sed "s/\\\'/''/g" \
| sed 's/enum([^)]*)/TEXT/' \
| sed 's/INT([0-9]*)//'
}
if test "$DEBUG" = 1; then
cat "$SQLFILE" | mysql2sqlite
else
cat "$SQLFILE" | mysql2sqlite | sqlite3 "$FILE"
sqlite3 -csv "$FILE"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment