to suppress the error from the log, check for column names before executing SQL

This addresses issue https://github.com/spree/spree/issues/2592

The initializer looks like it was created to remind users to run a migration on older version preferences.  
The initializer is gone from master but I presume it is still required for 1.3.x releases.
This patch is a slight refactor to check the schema first to verify the columns exist.

I realize this may not be necessary or desirable - feedback appreciated either way.