I have several occasions where I want to collect data when in the field. This is in situations where I do not always have access to my postgres database.
To keep things in sync, it would be excellent if I could use psycopg2 functions offline to generate queries that can be held back and once I am able to connect to the database; process everything that is held back.
One thing I am currently struggling with is that the psycopg2 cursor requires a connection to be constructed.
My question is:
Is there a way to use a cursor to do things like mogrify without an active connection object? Or with a connection object that is not connected to a database? I would then like to write the mogrify results temporarily to file so they can be processed later.
It would be a fragile approach, as the connection is used to detect some parameters used for escaping (encoding, standard-conforming string etc).
You can have a "manual mogrify" calling
psycopg2.extensions.adapt(x).getquoted()
on your parameters and then merging them to the query using the regular Python%
operator.Currently released psycopg versions (up to 2.3.2) may fail on
None
->NULL
conversion though. You can either convert these values manually or register an adapter for None: you can see how in this commit.