I've developed a website with the idea of using a single codebase for multiple sites each with their own DB. Currently one is live, with many (up to 100) to follow.
My question is about the ideal, best-practice way of managing this kind of architecture (not necessarily the easiest or most realistic, but the ideal from which I can work back from).
For the codebase I have gone down the route of making the entire thing one install of codeigniter and associated code and all site related configuration is in a set of config files that pick up the host name and use that to define the site title, tracking code, css/js directories etc. This seems to be a good setup and I can see it working for a large number of sites of the same code.
For the databases, how would one manage multiple databases as the schema changes with development? Would you manually push changes to the databases as needed or use an automatic tool? There is a Rails like migrations plugin for Codeigniter here, that seems like it might be a good idea.