Automating LIVE to TEST copies

**self-hosted*

Can anyone share with me their process for automating the LIVE to TEST copy?

Right now I have a checklist that I follow to do it manually. Basically I stop the TessService app pool, then blow away the impresario database on our TEST server (right click --> delete). I then execute a database restore using the most recent back up. After that I recreate the logins and then run a series of queries (in a specific order) to do things like change the dbo owner, update defaults, etc.

I do this once a month right now. If I could automate the process I would like to see it occur more often (one a week maybe).

Anybody have any thoughts???

Ashley Elliott

Database Administrator

St. Louis Symphony Orchestra

314-286-4198

ashleye@slso.org

Parents
  • I'm sure someone will chime in with a script for doing the actual copy (we're on RAMP so I don't have that), but I do have a fairly involved script for update Tessitura configuration after copy completion, if you're interested in seeing that.

  • Yes, could you share that script with us?

    Thanks, Ashley

  • Okay.  I'm sure I'm supposed to post some legalize somewhere in the product description ("This could quite possibly delete all your data!"), as with most things I've sort of tried to keep it a bit generally applicable, but there are likely a number of cases where it is built specifically to our instance.  The one thing I do know is problematic is the audit columns constraints on the system tables: I have custom functions to get user/location that you'll want to replace.

    LTR_CPSMA_ENV_SERVERNAME

    Basically, there is a table for specifying your different "Environments" (we used to have three).  This allows you to have different changes for each environment, but also should prevent this from running if the environment specified doesn't match the server name detected.

    LTR_CPSMA_ENV_UPDATES

    This allows you to select a table and up to three columns to match on (so for T_DEFAULTS you'd match on "parent_table" and "field_name", and then you specify a target column and various alterations you can make (prefix, suffix, complete replacement, substring replacements (e.g. TSQL REPLACE function), etc.)).

    Since these are "freeform" entries, where a column uses an id you'll have to look those ids up to put them in here.  T_DEFAULTS will probably be your main entry here, and it tends to use a lot of text values, but most other tables will typically refer to things (like "parent_table", usually "organization") by id.

    LTR_CPSMA_ENV_OPERATIONS

    This allows you to specify stored procedures (and a parameter list) to run for bigger data conversion operations.  You might want web table truncation and payment card purge standard procedures in here.

    LP_CPSMA_MAKE_ENV_CHANGES

    This is the procedure that reads the configurations above and makes the changes and runs the procedures.

    Other Procedures

    These are custom stored procedures that I run or have run in the past (for instance, I no longer expire user accounts since we moved to active directory login).

    bitbucket.org/.../

  • How do I get to this bitbucket folder?

    Ashley

Reply Children