Search code examples
databasedevelopment-environment

One DB per developer or not?


In a corporate development environment writing mostly administrative software, should every developer use their own database instance, or should they use a central database instance during development? What are the advantages and disadvantages of each approach? What about other environments and other products?


Solution

  • If you all share the same database, you might have some issues if someone make a structure change to the database and that the code is not "Synchronized" with it.

    I highly recommend one DB per developer for the only reason that you don't want to do "write" test to see someone else override you right after. A simple exemple? You try to display product for a website. Everything works until all the products disappear. Problem? Another developer decided to play with the "Active" flag of the product to test something else. In cases like that, a transaction might not even work. End of the story, you spend time debugging for someone else action.

    I highly recommend replicating the staging database to the developer database once in a while to synchronize the structure (or better, have a tool to rebuild a database from scratch).

    Of course, we require scripts for changes to the database and EVERYTHING is in a Source Control.