{"id":1222,"date":"2013-10-09T09:56:02","date_gmt":"2013-10-09T16:56:02","guid":{"rendered":"http:\/\/www.laurenwood.org\/anyway\/?p=1222"},"modified":"2013-10-09T09:56:02","modified_gmt":"2013-10-09T16:56:02","slug":"til-drupal-6-7","status":"publish","type":"post","link":"https:\/\/www.laurenwood.org\/anyway\/2013\/10\/til-drupal-6-7\/","title":{"rendered":"<span class=\"caps\">TIL<\/span>: Drupal 6 -&gt;&nbsp;7"},"content":{"rendered":"<p>One of my web\u00adsite cli\u00adents has a <a href=\"https:\/\/drupal.org\/\">Drupal<\/a> site, and it was time to upgrade from Drupal 6 to 7. Drupal is one of those vastly com\u00adplic\u00adated, able-to-do-any\u00adthing plat\u00adforms that is part blog\u00adging soft\u00adware, part <span class=\"caps\">CMS<\/span>, and part play\u00adground for <span class=\"caps\">PHP<\/span> developers, with the inev\u00adit\u00adable res\u00adult that Drupal 7 is a worth\u00adwhile upgrade over Drupal 6, but requires more than a little time to fig\u00adure out what needs doing. Thanks to Shane at <a href=\"http:\/\/www.leftrightminds.com\/\">Left Right Minds<\/a> who poin\u00adted me in the right dir\u00adec\u00adtion on sev\u00ader\u00adal occa\u00adsions. With power comes com\u00adplex\u00adity and there are many ways to get things wrong.<\/p>\n<p>As always, the basics are clear: use a devel\u00adop\u00adment site for the upgrade to get all the issues out of the way while not affect\u00ading the pro\u00adduc\u00adtion site. Allow more time than you think you will need. Ensure an adequate sup\u00adply of chocol\u00adate and\/or cof\u00adfee. Take breaks as needed.<\/p>\n<p>Copy the files on the pro\u00adduc\u00adtion site to the devel\u00adop\u00adment site (which I\u2019m call\u00ading {yourdevweb\u00adsite}). Cre\u00adate a backup and restore that on the devel\u00adop\u00adment site. Next time: turn off cach\u00ading and clear the cache before mak\u00ading the backup. Make sure cach\u00ading is turned off while developing.<\/p>\n<p>List all the mod\u00adules on the cur\u00adrent site, see if they have Drupal 7 equi\u00adval\u00adents. Spend some time fig\u00adur\u00ading out wheth\u00ader the new ver\u00adsions are worth\u00adwhile, or if there\u2019s a bet\u00adter way to add func\u00adtion X in Drupal 7 (ask\u00ading an expert, like Shane, is really help\u00adful at this&nbsp;stage).<\/p>\n<p>Upgrade the core by installing Drupal 7, solve any issues. If the pre\u00advi\u00adous sysad\u00admin changed the defaults so none of the menus appear to work, go to <code>{yourdevwebsite}\/admin\/structure\/menu<\/code> to reset them to the defaults.<\/p>\n<p>Drupal 7 allows upgrad\u00ading mod\u00adules from a <span class=\"caps\">URL<\/span>, yay! So the pro\u00adcess of upgrad\u00ading mod\u00adules turns into a fairly simple one , if no errors crop up. The first step is to determ\u00adine the order in which to upgrade the mod\u00adules \u2014 Backup and Migrate should be the first, Con\u00adtent Con\u00adstruc\u00adtion Kit (<span class=\"caps\">CCK<\/span>) second since it requires some field con\u00adver\u00adsion. Then Date, Token, and Views (nev\u00ader under\u00ades\u00adtim\u00adate the power of a View). Once you have those basics done, upgrade the oth\u00ader mod\u00adules in whatever order makes sense. I like to order things so I fix what\u2019s on the front page of the web site first, then the oth\u00ader&nbsp;pages.<\/p>\n<ol>\n<li>Go to <code>{yourdevwebsite}\/admin\/modules\/install<\/code>, add the link for the latest stable Drupal 7 ver\u00adsion, and install.&nbsp;<\/li>\n<li>Enable the mod\u00adule, then run <code>{yourdevwebsite}\/update.php<\/code><\/li>\n<li>Fix any errors.<\/li>\n<li>Run the backup to back up the changes.<\/li>\n<li>Con\u00adfig\u00adure the mod\u00adule, adjust menus, etc, until the mod\u00adule more or less does what you need. Final tweak\u00ading can wait until all the mod\u00adules are installed, but get the main func\u00adtion\u00adal\u00adity in place for each mod\u00adule as you upgrade it.<\/li>\n<li>Repeat for your list of modules<\/li>\n<\/ol>\n<p>Be aware, some mod\u00adules just don\u2019t work in Drupal 7 and for those you need to find anoth\u00ader way to get that func\u00adtion\u00adal\u00adity. Some mod\u00adules (e.g., <a href=\"https:\/\/drupal.org\/project\/calendar\">Cal\u00aden\u00addar<\/a>) changed the way they work between Drupal 6 and Drupal 7. Some mod\u00adules use the stand\u00adard con\u00adfig\u00adur\u00ada\u00adtion meth\u00adods, oth\u00aders (Cal\u00aden\u00addar again) are con\u00adfigured using dif\u00adfer\u00adent methods.<\/p>\n<p>Drupal 7 lets you split lib\u00adrar\u00adies and the mod\u00adule. For example, a good way to install the <span class=\"caps\">CK<\/span> edit\u00ador is to get the down\u00adload from the <a href=\"http:\/\/ckeditor.com\/download\">web site<\/a> and put in <code>\/sites\/all\/libraries<\/code>. Then install the CKed\u00adit\u00ador mod\u00adule, which will use that lib\u00adrary via the lib\u00adrar\u00adies&nbsp;<span class=\"caps\">API<\/span>.<\/p>\n<p><a href=\"https:\/\/drupal.org\/project\/IMCE\"><span class=\"caps\">IMCE<\/span><\/a> is a nice image and file browser\/uploader.<\/p>\n<p>When it comes to updat\u00ading themes, be aware that even if the theme has the same name as one in Drupal 6, it will prob\u00adably have sig\u00adni\u00adfic\u00adant changes. Respons\u00adive design tech\u00adniques and the avail\u00adab\u00adil\u00adity of more base themes con\u00adtrib\u00aduted to this, as well as the changes due to the actu\u00adal plat\u00adform. Expect to spend more time than you expec\u00adted to tweak the theme back to some\u00adthing approach\u00ading the ori\u00adgin\u00adal look and feel (assum\u00ading that\u2019s what the cli\u00adent&nbsp;wants).<\/p>\n<p>Allow time for train\u00ading people on the new fea\u00adtures. Even an hour or two&nbsp;helps.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of my web\u00adsite cli\u00adents has a Drupal site, and it was time to upgrade from Drupal 6 to 7. Drupal is one of those vastly com\u00adplic\u00adated, able-to-do-any\u00ad\u00adth\u00ading plat\u00adforms that is part blog\u00adging soft\u00adware, part <span class=\"caps\">CMS<\/span>, and part play\u00adground for <span class=\"caps\">PHP<\/span> developers, with the inev\u00adit\u00adable res\u00adult that Drupal 7 is a worth\u00adwhile upgrade over Drupal \u2026 <a href=\"https:\/\/www.laurenwood.org\/anyway\/2013\/10\/til-drupal-6-7\/\" class=\"more-link\">Con\u00adtin\u00adue read\u00ading<span class=\"screen-reader-text\"> \u201c<span class=\"caps\">TIL<\/span>: Drupal 6 -&gt;&nbsp;7\u2033<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"","activitypub_status":"","footnotes":""},"categories":[6],"tags":[109],"class_list":["post-1222","post","type-post","status-publish","format-standard","hentry","category-technology","tag-drupal"],"_links":{"self":[{"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/posts\/1222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/comments?post=1222"}],"version-history":[{"count":8,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/posts\/1222\/revisions"}],"predecessor-version":[{"id":1230,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/posts\/1222\/revisions\/1230"}],"wp:attachment":[{"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/media?parent=1222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/categories?post=1222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.laurenwood.org\/anyway\/wp-json\/wp\/v2\/tags?post=1222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}