Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 Database Design and Application Architecture
 Data Management/Publishing Strategies

Author  Topic 

BaggaDonuts
Yak Posting Veteran

52 Posts

Posted - 2011-06-29 : 03:41:54
I'm curious what strategies others have used to manage their data between staging, QA and production environments. At my company, we sell games. Those games' data is in a Product database. We have this database in multiple environments: Staging, QA, and Production. When we acquire new games, our acquisition team enters them into the Staging Product database. Then to verify that the product appears correctly on our website and can be purchased, licensed, etc, QA will publish that data to the QA environment. In actuality, there are multiple databases... for example: Product, Licensing, and Ecommerce. Each database has to be published in a particular order. Once a product is signed off, it will be published to our production environment.

To publish a product, basically, we have an admin tool that collects all the necessary product data from multiple databases, generates an xml string and passes that to a stored procedure in each database. the stored procedure then parses it and inserts/updates/deletes accordingly.

The problem we're running into with this approach is that it is cumbersome to maintain. whenever you change the database schema, you have to update the database, the admin tool, the xml generator, and the stored procedure. Also, those stored procedures are getting quite long. not to mention, we have to set up this whole system in its own QA environment just to test the system itself.

We have considered some other implementation strategies. We have considered getting rid of the whole "publishing" idea and just administering data in production with much more stringent validation. Our operations team is not remotely a fan of this idea. Some other things to consider... Our production databases have user data in them, so we can't just mirror or restore these databases. There has to be some data scrubbing involved with that. I'm less familiar with that whole process. I'm a dev, not a DBA guy so I don't really know what's available to synchronize data between databases.

Anyway, I'm just curious.. What solutions have people come up with for this problem? Are there any good sql features that I can take advantage of? are there any other third party software solutions available?
   

- Advertisement -