How to design a versioned database with PostgreSQL?
Use liquibase (you can write 99% of it in sql now, not xml)
Store liquibase schema in VCS (like git)
branch different versions in git
loop and apply branches to either different database schemas (tenant per schema. you could set schema at top of liquibase file) or loop and apply to different databases (tenant per database, would need to change liquibase db per loop)


see http://msdn.microsoft.com/en-us/library/aa479086.aspx for architectural discussion (applies equally to postgres). shared schema does not apply here.