Recently I had to generate and store uuid objects into a Postgres database, but to my surprise SQLAlchemy kept showing the following error:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt type 'UUID'
So the solution was that I had to change my field type from varchar to uuid on my Postgres database, import the psycopg2 extras functions and register the uuid type:
import psycopg2.extras import sqlalchemy from sqlalchemy import create_engine from sqlalchemy import MetaData,Column, Table, ForeignKey engine = create_engine('postgresql://user:pass@localhost/db',echo=True) metadata = MetaData(bind=engine) hash_key = uuid.uuid4() psycopg2.extras.register_uuid() conn = engine.connect() query = conn.execute("insert into tbl (uuid_col) values(%(uuid)s",uuid=hash_key)
And voila, values were inserted correctly on my database.