Database management in GRASS GIS
GRASS can be linked to one or many database management systems (DBMS).
The
db.* set of commands provides basic SQL support for
attribute management, while the
v.db.* set of commands operates
on the vector map (see
Vector introduction).
Available drivers are listed in
SQL support in GRASS GIS.
Notes:
The DBF driver provides only very limited SQL
support (as DBF is not an SQL DB) while the other DBMS backends (such
as SQLite, PostgreSQL, MySQL etc) provide full SQL support since the SQL
commands are sent directly to the DBMS. For this reason, the SQLite driver
is the default DBMI backend.
The current database management settings are shown or modified with
db.connect for current mapset. Available DBMI drivers
are listed with
db.drivers. Some DBMI backends
require a user/password for driver/database to be set with
db.login.
In order to test a driver, run
db.test.
Attribute data can be imported with
db.in.ogr from
various formats and exported with
db.out.ogr. To internally
copy a a full table or selectively parts of it, use
db.copy.
Further conversion tools:
GRASS supports two main SQL operations, execution of an SQL statement
(
db.execute) and selection
of data from a table (
db.select).
See the
SQL help page for examples.
Per default vector map attributes are stored in SQLite tables. This default
definition can be modified with
db.connect. If an
external DBMS is used,
db.login may be required.
Specific commands are explained on the individual driver pages (these
pages are only available if driver was compiled in this installation):
All columns for a given table are listed with
db.columns.
The command
db.describe describes a table in detail. To
list all available tables for a given database, run
db.tables.
To drop a column from a selected attribute table, use
db.dropcolumn.
With
db.droptable an attribute table can be deleted.
Currently schema support only works for PostgreSQL connections. Default schema
can be set with
db.connect. Note that the default
schema will be used by all db.* modules.
db.tables returns 'schema.table' if schemas are
available in the database.
To migrate a GRASS database table (or a GRASS vector map) to a different DBMI engine,
the best solution is to create a new MAPSET, define the DBMI settings accordingly
with
db.connect and if needed,
db.login.
Then the table of interest can be copied over with
db.copy from
the original MAPSET. Likewise, a vector map including its table(s) are copied from
the original MAPSET to the current MAPSET with
g.copy.
SOURCE CODE
Available at:
Database management in GRASS GIS source code
(history)
Accessed: Saturday Jan 21 17:40:37 2023
Main index |
Database index |
Topics index |
Keywords index |
Graphical index |
Full index
© 2003-2023
GRASS Development Team,
GRASS GIS 8.2.1 Reference Manual