0

I used the serialization features to migrate a large amount of content off of an older Sitecore instance and import it into a newer one (gigabytes of content, so packages wouldn't work). Everything's loaded into CM fine, and I started publishing out to my CDs, but the process is taking awhile (Azure databases in different regions from the CM) and because this is the live CM, if people are trying to publish in their daily work they get stuck in a queue behind me.

When you serialize content, it always goes to a "master" folder, and I've seen serialized content from other publishing target databases, like the "web" database. The question is, could I theoretically take my serialization folder tree of content and change "master" to "web" for the folder name, then go into CM's desktop and change to the "web" database and do a deserialization from there?

I don't know if there are ramifications for future publishing doing things that way, which is probably my biggest concern. In theory it should work, and the only process it locks up at that point is mine, the publishing queue stays unaffected. Are there pitfalls I'm not seeing and I should just be patient with the publish process?

3
  • what sitecore version do you have? If it's 8.2 I suggest you to use publishing service instead of serialization. Commented Sep 20, 2017 at 13:25
  • 8.1 unfortunately. I'd be all over the publishing service otherwise. Commented Sep 20, 2017 at 13:29
  • Are you able to serialize the web database (by switch to web from the desktop)? Restoring master data in likely to mean you have all version restored and possibly unpublished content.
    – jammykam
    Commented Sep 21, 2017 at 22:58

2 Answers 2

2

If you're using versioning or publishing restrictions I would refrain from putting master content directly on the web database.

The way publishing works makes sure only 1 valid version of each language is added to the web database. You would get all versions over by doing this, which could cause all sorts of unforeseen problems.

2
  • But in theory, if I wasn't, it would work? These folks really don't do versions or restrictions, and the content I'm looking at isn't even multi-lingual. Commented Sep 21, 2017 at 10:53
  • Yes, it would. However if that's what you want, I'd just do a copy of the entire database instead - I've done that before without problems, and that should be way faster than deserializing it all. Commented Sep 25, 2017 at 7:10
2

The safe option is to switch to the web database from the desktop and then to serialize the tree. This will create a "web" folder which you can then copy across and restore in whatever environments you want.

As mentioned in the answer from @M.Engel, when you publish only the latest version of an item is copied and only items which are approved (if using workflow) and there are no publishing restrictions set (if a publish date restriction has been placed on an item).

Just renaming the folder will still not be sufficient though since the serialized item contains the database the item belongs to:

----item----
version: 1
id: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
database: master
path: /sitecore/content/Home
parent: {0DE95AE4-41AB-4D01-9EB0-67441B7C2450}
name: Home
master: {00000000-0000-0000-0000-000000000000}
template: {76036F5E-CBCE-46D1-AF0A-4143F9B557AA}
templatekey: Sample Item
created: 20170728T140314Z

You would need to update all the .item files to change the database value from master to web. If you just rename the folder the restore will not work as you are expecting it to, it will just restore back to the master as a result.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.