Running a Sqlite3 Script from Command Line
The parameter you give to the sqlite3
program is the database file name.
To execute commands from a file, you must redirect the input to that file:
$ sqlite3 mydatabase.db < SQLTableTransfer
or tell it to read from that file:
$ sqlite3 mydatabase.db ".read SQLTableTransfer"
You can get a list of the spatial tables as follows:
echo "SELECT f_table_name FROM geometry_columns;" | spatialite -noheader -silent your_db.sqlite
For the lazy who want to just dump this into their .bashrc
:
### Execute an sqlite3 file on a given db
sql3-exec () {
# TODO: write a --help flag that doubles as error handling
# TODO: Ensure that $1 is a db; Else display --help
# TODO: Ensure that $2 is a .sql file; Else display --help
# TODO: Probably store a backup (or at least a flag)...
sqlite3 $1 ".read $2"
true
}