Copying a weewiki database
Sometimes it is ideal to copy over weewiki data from one SQLite database to another. This need came up for me while working on a sample database with an internal weewiki. Copying the whole file was very slow because the SQLar portion of the database was hundreds of megabytes. It made more sense to copy the whole file once, and then copy just the wiki data.
wiki_copy.sh makes use of the
ATTACH command in SQLite to copy tables from one location'
to another. It can be run in the following way:
./wiki_copy.sh source.db destination.db
It will copy the wiki data in
destination.db. Note that this will blow away any previous
weewiki data in the destination database. It also assumes
that the weewiki tables already exist.
#!/bin/sh if [ "$#" -eq 0 ] then echo "Usage: $0 src dst" exit fi SRC=$1 DST=$2 sqlite3 <<EOF ATTACH "$SRC" as src; ATTACH "$DST" as dst; -- first, clear the old wiki pages in destination DELETE FROM dst.wiki WHERE 1; DELETE FROM dst.wikilinks WHERE 1; -- then, copy over tables from source INSERT INTO dst.wiki SELECT * from src.wiki; INSERT INTO dst.wikilinks SELECT * from src.wikilinks; EOF