db.copy
Copy a table.
Either 'from_table' (optionally with 'where') can be used or 'select' option, but not 'from_table' and 'select' at the same time.
db.copy [from_driver=name] [from_database=name] [from_table=name] [to_driver=name] [to_database=name] to_table=name [where=sql_query] [select=string] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]
Example:
db.copy to_table=name
grass.script.run_command("db.copy", from_driver="sqlite", from_database="$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db", from_table=None, to_driver="sqlite", to_database="$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db", to_table, where=None, select=None, overwrite=False, verbose=False, quiet=False, superquiet=False)
Example:
gs.run_command("db.copy", to_table="name")
Parameters
from_driver=name
Input driver name
Allowed values: dbf, ogr, sqlite
Default: sqlite
from_database=name
Input database name
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
from_table=name
Input table name (only, if 'select' is not used)
to_driver=name
Output driver name
Allowed values: dbf, ogr, sqlite
Default: sqlite
to_database=name
Output database name
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
to_table=name [required]
Output table name
where=sql_query
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
select=string
Full select statement (only, if 'from_table' and 'where' is not used)
E.g.: SELECT dedek FROM starobince WHERE obec = 'Frimburg'
--overwrite
Allow output files to overwrite existing files
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
from_driver : str, optional
Input driver name
Used as: input, dbdriver, name
Allowed values: dbf, ogr, sqlite
Default: sqlite
from_database : str, optional
Input database name
Used as: input, dbname, name
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
from_table : str, optional
Input table name (only, if 'select' is not used)
Used as: input, dbtable, name
to_driver : str, optional
Output driver name
Used as: input, dbdriver, name
Allowed values: dbf, ogr, sqlite
Default: sqlite
to_database : str, optional
Output database name
Used as: input, dbname, name
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
to_table : str, required
Output table name
Used as: output, dbtable, name
where : str, optional
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
Used as: input, sql_query, sql_query
select : str, optional
Full select statement (only, if 'from_table' and 'where' is not used)
E.g.: SELECT dedek FROM starobince WHERE obec = 'Frimburg'
overwrite: bool, optional
Allow output files to overwrite existing files
Default: False
verbose: bool, optional
Verbose module output
Default: False
quiet: bool, optional
Quiet module output
Default: False
superquiet: bool, optional
Very quiet module output
Default: False
DESCRIPTION
db.copy allows the user to copy a table between two databases. Databases can be connected through different drivers (see examples below).
NOTES
Attribute tables can be copied using db.copy and, when to be associated to a vector map, assigned to the map with v.db.connect. Current connection settings are saved in the file \$LOCATION/vector_map/dbln.
EXAMPLES
From DBF to PostgreSQL
Storing table 'geonames.dbf' (in current directory) into PostgreSQL through ODBC:
db.copy from_driver=dbf from_database='$GISDBASE/$LOCATION_NAME/PERMANENT/dbf' \
from_table=geonames to_driver=pg to_database="host=pgserver,dbname=testdb" \
to_table=geonames
From PostgreSQL to DBF
db.copy from_driver=pg from_database="host=pgserver.example.org,dbname=testdb" \
from_table=origtable to_driver=dbf \
to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf' to_table=origtable
From PostgreSQL to PostgreSQL with condition
db.copy from_driver=pg from_database="host=localhost,dbname=testdb" \
from_table=geonames to_driver=pg to_database="host=localhost,dbname=testdb" \
to_table=selection where="cat < 500"
From DBF to SQLite
db.copy from_driver=dbf from_database='$GISDBASE/$LOCATION_NAME/PERMANENT/dbf' \
from_table=geonames_features to_driver=sqlite \
to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db' to_table=geonames_features
# convenient viewer:
sqlitebrowser $HOME/grassdata/nc_spm_08/user1/sqlite/sqlite.db
From SQLite to DBF
db.copy from_driver=sqlite from_database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db' \
from_table=ammprv to_driver=dbf to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' \
to_table=ammprv
SEE ALSO
db.connect, db.drivers, db.login, v.db.connect, v.clean
AUTHOR
Radim Blazek, ITC-irst, Trento, Italy
SOURCE CODE
Available at: db.copy source code
(history)
Latest change: Friday Feb 07 19:16:09 2025 in commit a82a39f