igorkasyanchuk / rails_db

Rails Database Viewer and SQL Query Runner
https://www.railsjazz.com/
MIT License
1.46k stars 111 forks source link

On model update nil column values become empty string #119

Open gabceb opened 3 years ago

gabceb commented 3 years ago

First, thanks for the great gem! This has been a lifesaver for me and my team.

I do have a small issue. I am happy to do the work but unsure what is the best way to move forward.

When updating db records via rails_db, text fields with original nil values are changed to '' even when they are not updated. I have been digging into the code and I noticed this is kind of expected because simple_form cannot distinguish between an actual empty string and a nil value but unfortunately this is an issue for any column that has a unique index OR if there is any code that needs to do different things with '' and nil.

I can see 2 potential solutions to this

If someone has experienced the same issue or has any idea it would be great to hear how they fixed this. Until this is solved we cannot use the edit function of the Rails_db 😢

igorkasyanchuk commented 3 years ago

Hello @gabceb, thank you for your issue, and I hope you can try to make a fix.

https://github.com/igorkasyanchuk/rails_db/blob/master/lib/rails_db/table.rb#L51-L56

maybe here if you can add something, before_save callback, or anything like that. But I want to avoid the situation when a field with '' will be set to NULL because of this change.

Or blacklisting some columns as you said. I've already implemented it for tables. But for columns, I think a new configuration could be added.