db.copy(1grass)

⋆。°✩ NAME ✩°。⋆

db.copy</p> — it copies a table. That's the whole personality 💅

Now here's the house rule, bestie, and it is not negotiable: you can use from_table (and yes, you may bring where along for the ride with it) or you can use the select option. But from_table and select at the same time?? No. Absolutely not. They are not getting along in the same command line 🙈 pick one, choose your fighter, periodt.


🏷️ KEYWORDS 🏷️

database, attribute table, SQL

That's the ✨taxonomy✨ of this whole situation, iykyk.


📜 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 (it will simply walk over your old stuff, main character energy 👑)
  • --help — Print usage summary (your lil cheat sheet 🎀)
  • --verbose — Verbose module output (it will NOT stop yapping, and honestly? we love that 💬)
  • --quiet — Quiet module output (shhh. silence. peace. 🍓)
  • --ui — Force launching GUI dialog (point and click era 🖱️✨)

🎛️ Parameters 🎛️

  • from_driver=name — Input driver name. Options: dbf, 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 — remember the rule, bestie 🫶)
  • to_driver=name — Output driver name. Options: dbf, 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 you gotta name it, that one's required, no skipping 💀
  • 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 lets you copy a table between two databases, like passing notes between two friends who live in different towns 📬

And the plot twist? Those databases can be connected through different drivers — so you can be over here in one dialect and over there in a completely different one. Examples are down below, keep scrolling bestie ⬇️


📝 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.

Yeah, that file is where the receipts live. Just so you know where your connection settings are hanging out 🧚

🌈 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

(that last one is the convenient viewer, in case you wanna peek at your handiwork with your own eyes 👀)

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 🫶 the icon, the legend, the one who wrote it.


💻 SOURCE CODE 💻

Available at: db.copy source code (history)

Latest change: Friday Feb 07 19:16:09 2025 in commit: a82a39f673b97fafcfce1604dc3e6015cb96487a

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


© 2003-2026 GRASS Development Team, GRASS 8.5.0 Reference Manual

and that's the whole page, bestie — GRASS 8.5.0 energy, last touched Friday Feb 07 19:16:09 2025, mwah 💖 go copy a table, you're gonna slay ✨

📦 where this page comes from