Here is my dilemma,
I am working on some SaaS using ASP.net MVC3 and SQL Server.
there will be multiple companies that user the software, each company will have multiple users. to make sure the data doesn't accidentally become visible from one company to another I have setup the databases as individual databases for each company and then the web-servers handle everything else: UI, logic etc.
I can foresee an issue already and I need to decide how best to deal with it before it becomes a real issue. Having these multiple databases, if everything goes good this year knock on wood we could potentially get 500 clients by the end of the year. Manually syncing schemas is out of the question for obvious reasons. VS2010 has a nice SQL compare script tool that will be helpful but how should I go about making sure that all the databases are of the latest version?
Problem 2
the way the system is designed it is very modular, so the clients will be able to add little widgets and things for their particular needs which will add new tables to there specific database. so in theory each database will be a little bit different. I figure the best way to handle this is to chuck all change scripts so that you have
Core.sql
Widget-Map.sql
Widget-HR.sql
etc..
am I correct in this line of thinking or is there perhaps a more practical way to attack this situation?
I have looked into Red-Gate SQL compare and I like it but, it still doesn't help in the multiple database situation.
so that being the case should I just create my own tools for updating the schemas?
if so any advice, tips, links. to make this task a little less daunting would be very appreciated.
Thank you very much for any and all assistance,
A Few Source I have already read, Migrations for Java