Is it a reasonable suggestion that all modules declare the DB related statics to allow pages to be extended easily e.g. has_one, has_many - even if they are empty?
I have just spent a fairly long time trying to figure out why I was getting an error saving ~any~ page after adding an Object Decorator for the ProductGroup page in the ecommerce module. I wanted to have an image field via a has_one relationship but then couldn't figure out why I was getting error saving all the other page types. It was obviously due to the fact ProductGroup does not declare the has_one static so the new Image relationship was being added to Page which did not have the column ImageID. Resulting in the error: Unknown column 'ImageID' in 'field list' when saving other pages.
After adding an empty has_one static to the ProductGroup core file in ecommerce, all was well. But this obviously defeats the purpose of Object Decorators :)
I realise the cause is PHP related, not Silverstripe but it would be good if this was a recommendation to all module developers (if it isn't already).
Unless I'm completely barking up the wrong tree here and there is good reason why this isn't common practise...