v.db.connect - Prints/sets DB connection for a vector map to
attribute table.
vector, attribute table, database, layer
v.db.connect
v.db.connect --help
v.db.connect [-
pgcod]
map=
name
[
driver=
name] [
database=
name]
[
table=
name] [
key=
name]
[
layer=
string] [
separator=
character]
[--
overwrite] [--
help] [--
verbose] [--
quiet]
[--
ui]
- -p
-
Print all map connection parameters and exit
- -g
-
Print all map connection parameters in shell script style and exit
Format: layer[/layer name] table key database driver
- -c
-
Print types/names of table columns for specified layer and exit
- -o
-
Overwrite connection parameter for certain layer
- -d
-
Delete connection for certain layer (not the table)
- --overwrite
-
Allow output files to overwrite existing files
- --help
-
Print usage summary
- --verbose
-
Verbose module output
- --quiet
-
Quiet module output
- --ui
-
Force launching GUI dialog
- map=name [required]
-
Name of vector map
Or data source for direct OGR access
- driver=name
-
Name of database driver
Options: dbf, ogr, pg, sqlite
Default: sqlite
- database=name
-
Name of database
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
- table=name
-
Name of attribute table
- key=name
-
Name of key column
Must refer to an integer column
Default: cat
- layer=string
-
Layer number or name
Format: layer number[/layer name]
Default: 1
- separator=character
-
Field separator for shell script style output
Special characters: pipe, comma, space, tab, newline
Default: pipe
v.db.connect prints or sets database connection for a vector map. The
user can add or remove link to attribute table on the certain layer.
Connection information (driver, database, table, key) is stored for each map, in
the file
<database>/<location>/<mapset>/vector/<map>/dbln
If parameters for database connection are already set with db.connect, they are
taken as default values and do not need to be specified each time.
When printing database connection (
p or
g flag) the parameter
layer is ignored, i.e.
all connections are printed to the
output.
Attention: Removing a vector map will also delete all tables linked to
it! If you use v.db.connect to link further tables to your map, it is
advisable to make a copy from those tables first and connect the copied tables
to the vector map (see also v.overlay).
Note: The default database backend setting is SQLite.
Print all database connection parameters for vector map.
v.db.connect -p map=roads
Print column types and names of table linked to vector map.
v.db.connect -c map=roads
Connect vector map to DBF table without or with variables.
Using default DB connection:
v.db.connect map=vectormap table=table
Using hardcoded path to DBF directory (not recommended):
v.db.connect map=vectormap table=table \
database=/home/user/grassdata/spearfish60/PERMANENT/dbf
Using variable as DBF directory definition, single quotes must be used:
v.db.connect map=vectormap table=table \
database=’$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/’
Connect vector map layer 2 and key ID to database with variables (note: if
needed, single quotes must be used for the
database parameter):
v.db.connect map=vectormap table=table layer=2 key=ID
Very similar to DBF driver example above.
db.connect driver=sqlite database=’$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db’
db.tables -p
v.db.connect map=vectormap table=table driver=sqlite \
database=’$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db’
v.db.connect -p map=vectormap
# note: connection which requires password
db.connect driver=mysql database="host=dbserver.foo.org,dbname=my_database"
db.login user=joshua [password=xxx]
# ... or enter password interactively.
db.tables -p
# connect external table to layer 2:
v.db.connect map=my_map table=my_mysql_table key=baz layer=2
v.db.connect -p my_map
# note: connection without password being asked
v.db.connect map=vectormap table=table layer=1 key=oid driver=pg \
database="host=myserver.itc.it,dbname=mydb,user=name" \
table=mytable key=id
This example illustrated a mixed data storage with possibility top update
attributes in external PostgreSQL database:
# Check current settings for attribute storage:
db.connect -p
# Import table from PostgreSQL to new map
# (NOTE: output map name needs to be different from table name in
# case that GRASS is connected to PostgreSQL):
v.in.db driver=pg database="host=localhost,dbname=meteo" \
table=mytable x=lon y=lat key=cat out=mytable
v.db.connect map=mytable -p
# Cancel table connection between map and attribute table:
v.db.connect map=mytable -d
v.db.connect map=mytable -p
# Drop table which was replicated due to import:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p
# reconnect map to table in PostgreSQL:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
table=mytable key=cat
# Now the geometry is stored in GRASS while the attributes are stored
# in PostgreSQL.
An alternative is to create a "view" of only ID, x, y [,z] columns and
to use v.in.db on this view, then connect the original table to the geometry.
This will be faster if the original table is very large.
This example illustrated a mixed data storage with possibility top update
attributes in external PostGIS database:
# Check current settings for attribute storage:
db.connect -p
# Import table from PostGIS to new map
# (NOTE: output map name needs to be different from table name in
# case that GRASS is connected to PostGIS):
v.in.db driver=pg database="host=localhost,dbname=meteo" \
table=mytable x="x(geom)" y="y(geom)" key=cat out=mytable
v.db.connect map=mytable -p
# Cancel table connection between map and attribute table:
v.db.connect map=mytable -d
v.db.connect map=mytable -p
# Drop table which was replicated due to import:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p
# reconnect map to table in PostGIS:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
table=mytable key=cat
# Now the geometry is stored in GRASS while the attributes are stored
# in PostGIS.
db.connect, db.copy, db.tables,
v.db.addtable, v.db.droptable, v.db.addcolumn,
v.db.dropcolumn, v.external, v.in.db, v.overlay
Radim Blazek, ITC-Irst, Trento, Italy
Last changed: $Date: 2015-10-01 23:06:38 +0200 (Thu, 01 Oct 2015) $
Available at: v.db.connect source code (history)
Main index | Vector index | Topics index | Keywords index | Graphical index |
Full index
© 2003-2018 GRASS Development Team, GRASS GIS 7.4.3 Reference
Manual