On Tue, Nov 6, 2018 at 11:57 PM Rich Shepard <[email protected]> wrote: > > On Tue, 6 Nov 2018, Markus Metz wrote: > > > Apparently the table (not the vector map) stations exists twice: once in > > the sqlite database, once in the pg willamette-river-hg database. This is > > the reason for the confusion. A vector map can have a table that is not in > > the default database as reported by db.connect -p. > > Markus M, > > I did not realize this. I thought that using db.connect with the pg driver > would use that table exclusively. This is good to know. > > > db.connect as well as other db.* commands use the default database > > connection reported by db.connect -p unless specified, e.g. > > Well, it didn't here when I tried using the v.colors command. :-( > > > You have to change the database connection for a given vector map with > > v.db.connect. To be safe (avoiding confusion) you might use v.db.droptable > > first. Make sure you transfer attribute values first, e.g. with db.copy. > > I had used db.copy to copy all the stations map tables to postgres except > for the stations table because that existed first in the postgres database, > and attributes there were expoorted and used with v.in.ascii to create the > grass map. > > Changing the database connection to the sqlite default I thought the > stations table was deleted: > > > db.droptable -f driver=sqlite table=stations
I suggested v.db.droptable, not db.droptable. db.* commands work on databases whereas v.* commands work on vectors. Thus you need to use v.db.connect, not db.connect, to connect a table to a vector, e.g.: v.db.connect map=stations driver=pg database="willamette-river-hg" table=stations layer=1 HTH, Markus M > Forcing ... > WARNING: Deleting table <stations> which is attached to following map(s): > WARNING: stations@mercury > > but, > > > db.connect driver=pg database="willamette-river-hg" > GRASS 7.7.svn (willamette_basin):~/data/grassdata/willamette_basin > db.connect -p > driver: pg > database: willamette-river-hg > > > v.colors -c map=stations use=attr column=howmany rules=rules.txt rgb_col=bin_col --o > DBMI-SQLite driver error: > Error in sqlite3_prepare(): select * from stations where oid < 0 > no such table: stations > > DBMI-SQLite driver error: > Error in sqlite3_prepare(): select * from stations where oid < 0 > no such table: stations > > ERROR: Column <howmany> not found in table <stations> > > > db.connect -p driver: pg database: willamette-river-hg schema: group: > GRASS 7.7.svn (willamette_basin):~/data/grassdata/willamette_basin > > > v.db.connect map=stations -p Vector map <stations> is connected by: layer > <1/stations> table <stations> in database > </home/rshepard/data/grassdata/willamette_basin/mercury/sqlite/sqlite.db> > through driver <sqlite> with key <cat> > > So, grass tells me it dropped the sqlite database table, but it still > looks for it when I run v.colors. I suppose I need to manually change the > database type. > > Regards, > > Rich > _______________________________________________ > grass-user mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/grass-user
_______________________________________________ grass-user mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/grass-user
