As I think you have already discovered Courier will not delete anything in the target site. I believe the reasoning behind this is to prevent Courier removing anything that may still be a dependency in another environment as there is no way of assuring both the source and destination are 100% in synch.
The only alternative I am currently aware of is using unpublish rather than delete to remove content. I do not believe there is currently a way to get Courier to remove more fundamental Umbraco objects such as document types.Courier does expose a large event api in much the same way as the Umbraco core does however I think it would be insanely complex to write code that would identify and delete unwanted content nodes.
Having said all that I am just trialing Courier myself at the moment and am no expert so would be interested to hear other thoughts from those with more experience on this.
The only way you could do this, is to keep a log of what you are deleting, because as of now, when you delete stuff in umbraco it will just be gone (only the umbracoLog table will have a reference to it, but only by ID, which is useless on the remote instance as the ID will have changed)
So log the Guids of all deleted items, then on each successfull extraction, tell courier to delete items through the Event Queue API (check the docs on umbraco.com) you would still need to write your own event handler for it, and then delete stuff through the native Umbraco API
So it is not impossible to do, it's just really scary and not very predictable - hence why we decided not to support it.
Courier does not delete nodes
I deleted some content nodes (and document type ) in my site
the content nodes are not deleted in other servers when i use Courier to sync it to other servers...
is it the way it should work??
As I think you have already discovered Courier will not delete anything in the target site. I believe the reasoning behind this is to prevent Courier removing anything that may still be a dependency in another environment as there is no way of assuring both the source and destination are 100% in synch.
The only alternative I am currently aware of is using unpublish rather than delete to remove content. I do not believe there is currently a way to get Courier to remove more fundamental Umbraco objects such as document types.Courier does expose a large event api in much the same way as the Umbraco core does however I think it would be insanely complex to write code that would identify and delete unwanted content nodes.
Having said all that I am just trialing Courier myself at the moment and am no expert so would be interested to hear other thoughts from those with more experience on this.
Explanation about why Courier does not delete nodes in this video here http://codegarden11.com/sessions/day-2/slot-two/team-development-with-andor-without-courier-20.aspx
Well worth a watch for anyone interested in Courier.
Rich
The only way you could do this, is to keep a log of what you are deleting, because as of now, when you delete stuff in umbraco it will just be gone (only the umbracoLog table will have a reference to it, but only by ID, which is useless on the remote instance as the ID will have changed)
So log the Guids of all deleted items, then on each successfull extraction, tell courier to delete items through the Event Queue API (check the docs on umbraco.com) you would still need to write your own event handler for it, and then delete stuff through the native Umbraco API
So it is not impossible to do, it's just really scary and not very predictable - hence why we decided not to support it.
is working on a reply...