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,sqliteDefault:sqlitefrom_database=name— Input database name. Default:$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.dbfrom_table=name— Input table name (only, ifselectis not used — remember the rule, bestie 🫶)to_driver=name— Output driver name. Options:dbf,mysql,odbc,ogr,pg,sqliteDefault:sqliteto_database=name— Output database name. Default:$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.dbto_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 withoutwherekeyword. Example:income < 1000 and population >= 10000select=string— Full select statement (only, iffrom_tableandwhereis 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.connectdb.driversdb.loginv.db.connectv.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
- alpine 3.24: grass-gis-doc 8.5.0-r1 · GPL-2.0-or-later
- ubuntu stonking: grass-doc 8.5.0-1ubuntu1 · GPL-2.0-or-later
- 💖 girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms