Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
I have the following situation. I created an Umbraco website on a test server. Once everything was tested the Umbraco website was published on a live server. After a while the customer wanted some new features. To do this new Document Types and User Controls needed to be created. Now is my question what is the best way to update the Umbraco website? The live version is different from the test version because extra content was added by the customer. Should I download the live version to the test version every time the website needs to be updated (including the database)? After testing is complete the live version should be frozen so the test version can overwrite the live version. This takes a lot of time and it’s not easy because the live website could have changed after I downloaded it to the test version.
I am curious how other Umbraco developers handle this situation. I have been thinking about putting the updated files in a package and install that on the live server. This way the live server and database don’t need to be overwritten. What is the best way to update an Umbraco website?
You have 2 options:
- Free version -> exactly as you've described, create a package with the new functionality and install on live server.
- Get umbraco Pro license so you can use Courier and Concierge which are add-ons targetting content move from one server to another (It comes at a price, depending on what option you choose -> http://umbraco.org/products
If using option 1, one last advice: BACKUP (your live environment...)
Thank you for the answer dirk. Is Courier also suited to transfer data from 1 database to another, update .dll's and what if I putted an extra folder somewhere on my website. Can the folder (which contains new images for instance) be copied aswell? It sounds like this might be the solution I'm looking for!
Yes, Courier takes care of tranferring the data from one installation to another. I'm thinking media items are now also supported, but ask the umbraco people first!
As for sync'ing files (including images which are not uploaded via the umbraco interface), you'll need to take care of this yourself (Pretty sure of this, as I've seen some threads about that)
Courier does not copy doc types or data types nor update any doc type properties
It does warn you if your doctypes are missing or do not match.
It was designed to transfer 'content' so from a developers point of view it's not going to help you much at all.
So I could use Courier to transfer content like new nodes and then transfer doc and data types with a package? Is this the best way?
I've encountered the same problem as your facing. The way we implemented it was to not think about the client's 'live' version as the master, but instead view you're development environment as master.
1 - Allow the client to add content to the 'live' site, but think of your development site as the 'master'
2 - Once you're ready to release the next phase of development ask the client to halt all content work.
3 - Use Courier to sync the data from 'live' back down to 'master' (i.e. dev)
4 - Overwrite the live environment with master and then continue working on dev.
This therefore means the only objects being sync'd with courier are content/media nodes. It also means that any id's your may be using in your xlst, etc will still work afer sync.
Caveat: I'm not too sure how well media is sync'd with courier as I didn't really need it.
This approach was discussed at one of the (awesome) Codegarden day 2 sessions. Someone (?) also mentioned an approach where you increase all DB id's in the 'live' environment and then use a DB syncing tool to migrate the data... it sounded good, but I've always tried to find Umbraco solutions that don't mess with the DB directly.
I know a couple of other dev's use this approach, although it can be a bit time consuming.
The way I think of it is that the content and the code are completely different and I don't attempt to keep the content in sync between the two.
There are 3 ways of releasing code changes that I can think of (without using courier):
- release your changes as a package, as mentioned by Dirk
- freeze content updates, copy environment to Dev machine and copy back to Live when changes are complete and tested
- Do your development on your dev machine. On the live machine create stubs for any new macros or templates and update any changes to document types manually. Then just FTP accross your new/changed templates/xslt/css etc. accross to the live server
I use the 3rd option 95% of the time as releases to an already completed site are usually quite small i.e. a new template or a new macro.
For major changes in functionality I would use the 2nd option.
I'm in a similar situation. I've made a few minor code changes and updated the xslt files via FTP. Now I need to update content and media from dev site to the live site and I'm struggling.
Initially I tried restoring the live site's database from the more up-to-date dev site's database (and backed both up before attempting anything). I'm now finding that the live site hasn't updated the content or the media files (which I'm now thinking I'll have to do manually...). So, does anyone know how I can update the live site with the latest changes without resorting to Umbraco Courier?
Worked it out myself - bit foolish really. Once you've restored the database you need to right click on the parent node "content" and click "publish all". Then it starts to appear. You'll also need to manually update the media folders if these have changed. Simples, and embarassing I hadn't thought of this myself.
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted