Adding jsonb columns for custom fields

The general guidelines for using plugin store would be for

  • Tiny amounts of data
  • You do not think you will need to query it

Overall, actual use cases for PluginStore should be very very small. For example even our existing cases where we use it are misuses imo cause tidy tables here would help a lot.

  • staff notes should be a table
  • data explorer is really messy in the way it uses it and should use a table
  • oauth2 basic belongs in the new tables @david is suggesting
  • canned replies should be in a table

Regarding the “but I really really want to remove all traces of a plugin, problem”

Firstly, we are not cleaning up plugin store properly anyway. Secondly, if you make the migrations reversible we can just run them in reverse. The big risk around “adding extra tables” is that 2 plugins may fight for 1, which is why I suggested a central registry in core.

7 Likes