GSOC Proposal for Storage for AcousticBrainz v2 data

Here is my proposal This is a part of my proposal @alastairp I would grateful if you could check it and clarify some of my doubts as well.
Firstly please excuse my bad formatting I will change it soon.
Secondly, I have some doubts listed below please clarify them.

Do we need a default or can we assume NULL to be the old version?

What should be the most optimal trigger for giving the user the option to go with old version data?

Any inputs on how we can get the version of the extractor in use at the client before running the extractor to avoid unnecessary computation? (instead of retrieving it after extraction)

When releasing a new version of client-side software are we going to update or download the new client software? This point can change a lot of implementation details i have listed below.