Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Kris Dyson 54 posts 79 karma points
    Aug 27, 2010 @ 15:45
    Kris Dyson
    0

    Upgrading/Deployment of Umbraco-based systems

    Hi there, here's a couple of scenarios for you:

    Application A is not umbraco-based. It's an standard ASP.NET web app with a database, a few custom tables. Version 1 is released, you can either run a script or utilise version of your database void of test data.

    So then you develop version 2, write new / refector code and create database schema upgrade scripts. On deployment, you deploy the software and run the upgrade scripts.  Version 2 - deployed successfully.

     

    Application B is an Umbraco based system.  It uses the in-built membership system, the media directory evolves with all the changes, such as user profile photo uploads, and videos etc.  It also has some custom database tables.  Version 1 is released, the usual way. 

    So then you develop version 2, write new / refactor code, create database schema change scripts for the custom tables, and change the Umbraco meta-database (e.g. create custom data type, add doc types, add member types etc).  In addition, you add new content nodes.

    In order to deploy, you run the custom table schema uprade scripts, and deploy the software.... but how do you deploy all the meta-db changes (doc types etc)?  With the Content nodes, I can use Umbraco Courier.. that's great. 

    Option 1) Deploy the software to production, run the custom table scripts as you would with any application... then apply all the doc type / data type / member type changes manually. (Error-prone)

    Option 2) Migrate dynamic data from production to staging.  Write a script to manually migrate all the data from the production environment that you need to keep, like the custom tables data, membership and any dynamically created content vai the Umbraco APIs.  Migrate all the media data as well. (Error-prone) Then make staging the live environment.

    Option 3) Is there any option 3?!  My dream option 3 is to be able to "script" the meta-db changes, and run those on production like I would with a "normal" system.

     

    I'd really love to hear how other people are dealing with this

    Many thanks!

    Kris

  • Morten Bock 1867 posts 2140 karma points MVP 2x admin c-trib
    Aug 28, 2010 @ 12:02
    Morten Bock
    0

    Well, the good news is that Courier 2.0 will be able to do that for you. The bad news is that there i no release date for it yet.

    We have been working with the same challenges, and tried using packages for updating doctypes/macros etc. but it was not optimal since some types were updated, and others were created again, making it duplicate.

    What we ended with was your option 1. And you are right, it is error prone. I have been thinking about putting together a set of package actions that could help with this, so you would have actions like "addPropertyToDoctype" and that sort of thing. That would take a bit of time to develop, but might be the way to go for now, if you have the time to do it.

Please Sign in or register to post replies

Write your reply to:

Draft