db.copy(1)

💖 db.copy — the GRASS GIS User's Manual glow-up 💖

okay bestie, welcome to the db.copy page from the GRASS GIS User's Manual. this is where tables get copied between databases and honestly? it's giving ✨ effortless data migration ✨. let's get into it.


✨ NAME ✨

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. it's one or the other, bestie, pick a lane 💅


🏷️ KEYWORDS 🏷️

database, attribute table, SQL


📜 SYNOPSIS 📜

db.copy
db.copy --help
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]  [--help]  [--verbose]  [--quiet]
[--ui]

🚩 Flags 🚩

  • --overwrite — Allow output files to overwrite existing files. yes it will literally bulldoze what's there, so know what you're doing 😭
  • --help — Print usage summary. the "help meeee" button 🥺
  • --verbose — Verbose module output. she's chatty, she's telling you everything ✨
  • --quiet — Quiet module output. shhh, no notes 🤫
  • --ui — Force launching GUI dialog. for when you want the pretty buttons 🎀

🎀 Parameters 🎀

  • from_driver=name — Input driver name. Options: dbf, mesql, mysql, odbc, ogr, pg, 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. Options: dbf, mesql, mysql, odbc, ogr, pg, sqlite Default: sqlite
  • to_database=name — Output database name. Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
  • to_table=name — [required] Output table name. yeah bestie, this one's non-negotiable 👑
  • 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'

💜 DESCRIPTION 💜

db.copy allows the user to copy a table between two databases. Databases can be connected through different drivers (see examples below). lowkey iconic that it just works across drivers like that 🌈


📝 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. so that's where the receipts live 🧾


🌸 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"

see how where just slides in there? no where keyword, just the condition. periodt 💅

🦋 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)

Accessed: Saturday Jan 17 05:40:33 2026

Main index | Database index | Topics index | Keywords index | Graphical index | Full index

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual


and that's the whole page, bestie!! 💖 this was db.copy(1) from GRASS 8.4.2, accessed Saturday Jan 17 05:40:33 2026, brought to you by the GRASS Development Team — © 2003-2025, GRASS GIS 8.4.2 Reference Manual. go copy some tables, you've got this 🫶✨

📦 where this page comes from