(The statement above is an UPDATE with a condition.)
I also regularly get the message when I drop and re-create my local test DB and then run migrations on it.
I poked around the net but the idea of Postgres OIDs doesn’t seem to apply to our app at all. I grep-ed all our migrations but couldn’t find anything about OIDs either.
Anybody has an idea? It’s a warning that doesn’t break anything but since it occurs regularly, it piqued my interest.
Not sure if you’ve seen it in your searches already but the postgrex readme has some discussion about their use of oids and some considerations around ints that might be relevant?
I did, but it says absolutely nothing to me. The only thing OID-related to our DB is the fact that PG still gives OIDs to our tables (automatically) but we haven’t configured any table to use OIDs inside them.
That may be the root cause. If you change the database structure, then whatever Postgres has cached will fail. But this should only happen if they are changed while the suite runs.
I am not excluding possible races. I happen to see the message only while migrating a freshly created test DB though, not during mix test. (Not sure if you implied that by saying “suite”.)
Is the error message serious? I honestly can’t say even after searching for PG OIDs for a while.
Does that mean that Postgrex is simply rebooting its supervision tree? Because if it caches types as a performance optimization technique, I am guessing it will have to reboot something after they change?