For the last few years I was the only developer that handled the databases we created for our web projects. That meant that I got full control of version management. I can't keep up with doing all the database work anymore and I want to bring some other developers into the cycle.
We use Tortoise SVN and store all repositories on a dedicated server in-house. Some clients require us not to have their real data on our office servers so we only keep scripts that can generate the structure of their database along with scripts to create useful fake data. Other times our clients want us to have their most up to date information on our development machines.
So what workflow do larger development teams use to handle version management and sharing of databases. Most developers prefer to deploy the database to an instance of Sql Server on their development machine. Should we
- Keep the scripts for each database in SVN and make developers export new scripts if they make even minor changes
- Detach databases after changes have been made and commit MDF file to SVN
- Put all development copies on a server on the in-house network and force developers to connect via remote desktop to make modifications
- Some other option I haven't thought of