Skip to content. | Skip to navigation

Sections
Personal tools
What is this?
Hi, my name is Tom Lazar and I'm a Plone and Zope developer based in Berlin, Germany and this is my personal and professional (no big difference, really...) website.
 

Migrating

Filed Under:

Yup, it's that time of year again...

While technically I’ve already handled the transition of this blog from (DTML-based) COREBlog to (Plone-based) Quills by keeping the old blog running at /coreblog/ and applying some mod_rewrite pixiedust to keep the old entries reachable via their previous URL (/blog/123/) I still wanted to migrate the COREBlog entries to Quills to have a unified archive and to expose the old content to Plone’s excellent search feature.

Also, I figured, it would be a nice starting point to delve into Quill’s sources, get my hands dirty and perhaps even gasp contribute something back to the project by writing a neato migration script. Afterall, when Quills will go “final” we’ll want to offer as many convenient migration paths for as many blogs as possible. And just maybe there are some COREBlog users out there who would like to give Quills a try ;-)

Well, I’m pleased (with myself) to announce samesaid script today. I have tested it about a gazillion times with my own content and added quite some hooks to catch possible show-stoppers such as encoding errors etc. YMMV.

The script has the following features:

  • migrates entries including comments and talkbacks (preserving date and author)
  • automatically creates categories as needed
  • generates copy-and-paste ready RewriteRule statements for accessing the migrated entries via their old URL

and the following caveats:

  • new entries are owned by the user running the script: owners of group blogs will have to extend the script to handle ownership
  • while new entries will initally have a preserved modification date, this will be lost as soon as they are published. They will show up with correct dates in the archive but search results will show them being last modified when published. If you don’t like that, you’ll have to add the publishing process to the script and then set the modification date to the original value.
  • I haven’t figured out how to distinguish open from closed comments and trackbacks in COREBlog, so the script migrates all. If you’ve got lots of comment/trackback spam in your COREBlog instance that you’ve simply closed instead of deleting it (like myself) you’ll either want to add state-awareness to the script or clean up your COREBlog instance before migrating.
  • while in theory COREBlog can handle multiple categories per entry I never managed to create entries with more than one, so that’s all this script handles, too.

And finally, at the moment of writing this entry, the script depends on a modified version of Quills in order to preserve the date of trackbacks. I have submitted it to Tom and Brian and if I didn’t totally goof up, it will probably make it into the 0.9 release. For the time being you’ll have to apply this patch to WeblogEntry.py.

As you can see, the script worked (at least) for me: the topics- and archive-sections are now nicely populated making me perhaps the only owner of a Quills blog with content from 2003 ;-)

If you wish to use the script for yourself and experience any problems, let me know and I’ll see what I can do. Welcome to Quills!

The migration script can be downloaded here and the patch here.

Update: Brian has moved both - the script and the patch — into the 0.9 branch, so the easiest way to get it is to simply check out the current 0.9 branch by issueing svn co http://svn.etria.com/Quills/branches/0.9/.

workflow state

Posted by Edmund Haselwanter at May 10, 2005 09:47 PM
Did you try to set the workflow state to published and incorporate the moveToArchive script of the workflow? Something like: wf_tool.doActionFor(new_obj, 'publish', 'quills_workflow'). To generate new WeblogEntries in the draft folder works for me, but putting them to the published state within the script doesn't work for me ...

(The action against the XXXX-2005-04-26-133208-0200-tue-26-apr-2005 object could not be carried out. One of the following constraints caused the problem: The object does not support this operation. -- OR -- The currently logged-in user does not have the Copy or Move permission respective to the object)

workflow state

Posted by Edmund Haselwanter at May 12, 2005 10:19 AM
I've kind of solved it. You have to "finish" the first transaction against the zodb and then you can use the workflow tool to change the state to published. It seems to me that this is a kind of hack, but for now it works ...

ed hardy swimsuit

Posted by Anonymous User at Jul 22, 2010 12:58 PM

ed hardy show continued in a tone of silliness, and several of Meyers' current and former "Saturday Night Live" cast mates asics shoes joined in the fun, including a vuvuzela-playing Will Ferrell and Andy Samberg dressed as Paul the octopus. air yeezy Angeles made a good showing on a night when sports got the Hollywood treatment. nike air yeezy took home the ESPY for best coach, the Lakers' Kobe Bryant won the award for best NBA player coach outlet the Galaxy's Landon Donovan won awards for bestsupra footwear player and best moment in sports, for his winning goal nike dunk the U.S. against Algeria in the World Cup. The New Orleans Saints were the top winners of the evening, christian louboutin the award for best team. Quarterback Drew Brees visvim sneakers named best male athlete and best NFL player and was saluted christian audigier best championship performance. The show took on a serious tone with two special awards. green envy ghd Jimmy V Award for Perseverance, in honor of the late college basketball coach Jim Valvano, went to Denver Nuggets Coach George Karl, air max lebron james is a survivor of prostate cancer and was diagnosed with neck and throat cancer.ed hardy t shirts ed hardy swimwear ed hardy sunglasses ed hardy belts ed hardy hats ed hardy watches ed hardy t shirt ed hardy swimwear ed hardy swimsuit ed hardy sunglasses ed hardy belt ed hardy capsblue serenity green envy purple indulgence red lust ghd kiss pink ghd straighteners purple ghd ghd mk4 pure ghd mk4 dark ghd mk5 dark mini ghd pure ghd rare ghd ghd benefit limited edition