#5086 closed (fixed)
testing on postgres_psycopg2 tries to truncate tsearch2 tables
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Keywords: | ||
Cc: | shaun@… | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I'm using tsearch2 together with django. Tsearch2 adds some special tables to the template database which are automatically created in each new database. So they don't get mixed up or deleted, I leave the user as "postgres" -- not owned by the user that django connects via.
This works fine... except that during testing the (django) test cases "truncate" all tables including the tsearch2 tables. These tables shouldn't be truncated, and (since django is not the owner to prevent just this sort of thing) the command fails.
I have solved in patch by having django.db.backends.postgresql_psychopg2.introspection.get_table_list return by default only tables that are owned by the current_user. I think this is a reasonable default in general, because other tables are likely to be not the concern of django anyway.
- Shaun Cutts
Attachments (1)
Change History (5)
by , 17 years ago
Attachment: | owned-tables-only.patch added |
---|
comment:1 by , 17 years ago
Summary: | testing on postgres_psychopg2 tries to truncate tsearch2 tables → testing on postgres_psycopg2 tries to truncate tsearch2 tables |
---|
Thanks! And what if my tsearch2 tables are owned by the same user like anything else?
comment:2 by , 17 years ago
I agree that Django should not be truncating -- or even *touching* -- the tsearch2 tables. But I would even go as far as to say that Django should not touch *any* tables that it doesn't know about, regardless of which user account the table was created under.
I will change this so that Django doesn't touch tables that aren't defined in models.
comment:3 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
patch of ...introspection.get_table_list, returning by default only tables owned by current user