rom
rom copied to clipboard
Conflict with notifications relation
Describe the bug
I have an notifications table in my database, after adding a Notifications relation I started receiving very strange errors.
Upon investigation it turns out that instrumentation will try to log to my relation instead of Dry::Monitor::Notifications
To Reproduce
Create a project, add instrumentation to your rom-configuration
rom_config.plugin :sql, relations: :instrumentation do |plugin_config|
plugin_config.notifications = notifications
end
Create a relation / table named notifications
Expected behavior
Should work
Your environment
- Affects my production application: yes
- Ruby version: 2.6.2
- OS: Linux
It makes sens since here
https://github.com/rom-rb/rom-sql/blob/46d8d115c326afa8ac3a713b220e292d29615e0b/lib/rom/plugins/relation/sql/instrumentation.rb#L33
It's trying to access notifications
attribute on a relation, and it probably get's overwritten by the notifications
relation instead of using the config one.
I wonder why is this the case, can relations have different notification plugins apart from the one set in config?
Good catch!
This can be easily fixed by using Relation#__notifications__
instead
Hey y'all
I didn't get it. Is there a way to get rid of this by only changing my code structure?
@gbrlcustodio you can register your notifications relation under a different name for the time being
I got bitten by this today; would be nice not to have to rename my relation.
@mrship I'll make sure this is fixed in rom 6.0.0. This is now in rom-rb/rom because it needs to be fixed here and then a follow-up adjustments must be made in rom-sql
Hi, @solnic are you still planning to fix this issue in rom 6?
Yes I am