Not sure that I'd call myself an expert in this forum, but option 2 should be fine. You shouldn't need to create a new DCR, you should just be able to read the old one, make your changes to that and write out the new version over the old.If you intend to knock the script together and then run it straight away on your live data, the risk is very, very high (basically, don't do it). If on the other hand you test, test and test again on a copy of your live data before running the script for real, then the risk should be very low - but that all depends on your testing being up to scratch...HTH
I give a second too for the suggestion provided by ghoti, however would like to clarify as why the "rinse-lather-repeat" process should be implemented over a complete workarea instead of a sample DCR.Just curious to set myself in lines of thought which ghoti has in its mind.
I'm not 100% sure, but I think you're asking Adam why he is suggesting running a data conversion script against a copy of all of your live data as a test, instead of just a single or a small subset of data?The reason is fairly obvious, just because a test case works for one scenario, doesn't mean it will work for all. In the majority of cases, a small subset of sample data may be enough, but there is always a chance that there are scenarios that you didn't account for in your sample data. By testing your script against all of your real data, you eliminate that chance and save yourself the trouble of trying to create a sample subset of data that you think covers all scenarios. So, if you have the ability to test your script against all of the data it will be manipulating, which you should in this case, there are no good reasons why you shouldn't and many that you should.~Jeff
Thanks Jeff.However when ever we had to run a Reverse Engg script over a type of DCRs, we generally test it over on particular DCR (assuming it would work over all).I may be lucky enough that i had not encountered any such case, you are talking about.Thanks again.
Being lucky and being diligent (and smart) are two different things.If you had a surgeon tell you that he performed an operation on one mouse's leg and it worked - would you be willing to let her operate on your leg based solely on that one test case?Yeah - it's not exactly the same thing - but the fundamentals are. If your customer gets a huge chunk of their revenue from the website, and you're about to modify 10,000 DCRs to facilitate a desired change - how much downtime is your customer going to be happy with when you discover that running a single test case through your code was not sufficient to thoroughly verify that nothing would break in the other 9,999 DCRs to be processed?Not only that - but by running your tests on all 10,000 DCRs - you can obtain information about how long it takes to run - which can then help set expectations and plan for the actual change to occur.If you want to take it to an extreme - yeah, you might cut a few corners if you had to process 1,000,000 DCRs, but I'd still want to run the script over at least 1000 of them before I felt sure enough to do it "for real".