Skip to content

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

GRASS SQL interface

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