You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By default Rails puts its tables in the public schema. But sometimes other schemas are used, for instance for history, reporting, multiple tenants, etc. It is common for these other schemas to have tables with the same name as the table from the public schema (see links above). Currently when pg_audit_log queries information_schema.columns, it gets all columns from all schemas, which causes errors when it tries to record the changes that happened. This change makes pg_audit_log look only in the public schema, so it doesn't break if other schemas are used.
Is it possible to specify the schema in the database.yml? If so this
should use the value specified in the connection config instead of a
hard-coded default.
By default Rails puts its tables in the public schema. But sometimes
other schemas are used, for instance for history https://www.youtube.com/watch?v=TRgni5q0YM8, reporting, multiple tenants https://github.com/influitive/apartment, etc. It is common for these
other schemas to have tables with the same name as the table from the
public schema (see links above). Currently when pg_audit_log queries
information_schema.columns, it gets all columns from all schemas, which
causes errors when it tries to record the changes that happened. This
change makes pg_audit_log look only in the public schema, so it doesn't
break if other schemas are used.
You can view, comment on, or merge this pull request online at:
The best you can do from database.yml is schema_search_path, which seems not quite right. I changed the PR so that the old behavior is unchanged by default, but you can restrict pg_audit_log to just one schema by passing a param to the install function or setting an envvar when you run the rake task.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
By default Rails puts its tables in the
publicschema. But sometimes other schemas are used, for instance for history, reporting, multiple tenants, etc. It is common for these other schemas to have tables with the same name as the table from thepublicschema (see links above). Currently when pg_audit_log queriesinformation_schema.columns, it gets all columns from all schemas, which causes errors when it tries to record the changes that happened. This change makes pg_audit_log look only in thepublicschema, so it doesn't break if other schemas are used.