[server] fix deserialize_schema to handle properly pg schema (closes 17076486)
Postgres behaviour is to look first for a table in the configured schema then
fall back to 'public' if no table is found.
This must be implemented in deserialize_schema when listing existing tables
to check for computed relations (cw_cwcomputedrtype) otherwise computed
relations may not work when using non-default pg schema.
--- a/cubicweb/server/schemaserial.py Wed May 10 15:07:18 2017 +0200
+++ b/cubicweb/server/schemaserial.py Wed May 03 21:55:41 2017 +0200
@@ -92,6 +92,9 @@
# Computed Rtype
tables = set(t.lower() for t in dbhelper.list_tables(cnx.cnxset.cu))
+ # on postgres, ensure the default schema name (public) is also checked
+ if dbhelper.backend_name == 'postgres':
+ tables.update(t.lower() for t in dbhelper.list_tables(cnx.cnxset.cu, 'public'))
has_computed_relations = 'cw_cwcomputedrtype' in tables
# computed attribute
try: