Thread: BUG #16407: Column mismatch
The following bug has been logged on the website: Bug reference: 16407 Logged by: onlinejudge95 Email address: onlinejudge95@gmail.com PostgreSQL version: 12.2 Operating system: Docker Description: I have a flask app that connects to a Postgres DB and stores the user info there. For local development purposes, I am using docker to bring up 2 containers one my app and the other of Postgres. In my models, I am defining my primary key as a column named id class User(db.Model): __tablename__ = "users" _id = db.Column(UUID(as_uuid=True), primary_key=True, unique=True, nullable=False,) username = db.Column(db.String(128), nullable=False) email = db.Column(db.String(128), nullable=False) def __init__(self, username, email): self._id = uuid.uuid4().hex self.username = username self.email = email Everything works fine in my local system when I use this Dockerfile FROM postgres:12.2 LABEL maintainer="onlinejudge95" COPY configs/db.sql /docker-entrypoint-initdb.d/ But while deploying to Heroku and using the Postgre image there, I receive the following errors on any operation that queries my DB. sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column users.id does not exist So I decided to change my models to use _id instead of id, this change seems to work fine. Is this a known discrepancy?
On Fri, May 1, 2020 at 8:28 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:
Bug reference: 16407
Logged by: onlinejudge95
Email address: onlinejudge95@gmail.com
PostgreSQL version: 12.2
Operating system: Docker
Description:
I have a flask app that connects to a Postgres DB and stores the user info
there.
For local development purposes, I am using docker to bring up 2 containers
one my app and the other of Postgres.
In my models, I am defining my primary key as a column named id
Everything works fine in my local system when I use this Dockerfile
FROM postgres:12.2
So I decided to change my models to use _id instead of id, this change seems
to work fine.
Is this a known discrepancy?
This is a bug report mailing list - what you are describing doesn't seem like a bug - it doesn't even seem like something the PostgreSQL server is responsible for. Given what does work locally doesn't work on Heroku you should probably ask them.
However, you posted the following while claiming to have named your column "id"...
_id = db.Column(UUID(as_uuid=True), primary_key=True, unique=True,
self._id = uuid.uuid4().hex
Maybe your local development copy has some unwanted data within it that causing it not to fail and when you deploy to a clean Heroku instance the discrepancy comes to light?
David J.