When migrating into Drupal from a CSV file (i.e. a spreadsheet from Excel or LibreOffice Calc if you're an open source nut like me), you use the MigrateSourceCSV class. It works very well.

Depending on where the CSV file originated, though, you might get unexpected behaviors, like Migrate UI telling you there are thousands of source fields you need to map. If this happens, and you don't have that many fields, check the line endings on your CSV file. Open the CSV file in your text editor and check its settings. Today, I was working with a file with the following settings (shown in BBEdit's status bar):

Character set and line ending settings shown in BBEdit

As you can see, the character set was Western (Mac OS Roman), and the line endings were Classic Mac. That means the file originated in Excel for the Mac, and it causes Migrate to freak out. I changed these settings to UTF-8 and Unix-style line breaks, saved the file, and from then on Migrate was happy.

There's also a parameter you'll see in the MigrateSourceCSV documentation called embedded_newlines. It's supposed to help with weird row counts, so I thought maybe that would help this issue, but apparently that's not quite it. It's not a big deal to resave the CSV file anyway, so that's what I'd recommend just to be safe.


This is Part 1 in a series of posts on migrating a site from Squarespace 5 into Drupal 7. This is an overview of what we're doing and why, mostly discussing the format of the Squarespace 5 XML file, which is undocumented. My hope is to make the process of importing Squarespace data easier for everyone else.

The Mission

I'm working on a fairly large site (ApertureExpert.com), currently running on Squarespace 5, migrating to Drupal 7. Squarespace is an excellent platform with many virtues, but it doesn't allow the level of customization that my client is looking for, so we're moving the site to Drupal. Now, of course you lose the built-in, high-availability hosting, and some of the very good polished UI that Squarespace gives you, so this move is not for everyone. But if you want control, and to have your blog, forums, and e-commerce wrapped up in a single package, Drupal is your friend. One example: my client wants users to have all their purchased products, forum posts, and comments available through their user profile. Squarespace can't do that, Drupal can.

This site has been active for several years now, and has a very active community of users, so the first big task was to import all of those items into Drupal. Fortunately, Squarespace 5 will let you export your entire website as XML. Note: it doesn't look like Squarespace 6 (the current version) supports full site export. There is a WordPress-compatible export that you could import into Drupal using WordPress Migrate (or, obviously, into WordPress), but it seems to cover only blog posts. This site is older, running Squarespace 5, so we can get everything.

Now that we have exported data, what can we do with it?


I gave a presentation at last night's LA Drupal meetup on migrating from Squarespace to Drupal. I'm writing a full blog post (maybe more than one) on the subject, but for now I want to post the slides.

Download Squarespace to Drupal: a migration adventure (PDF)

All the links in the PDF should be hyperlinked and clickable. There are also some XPath selectors and drush commands that might be useful. The full post on this topic is coming soon.


Drupal Power Workshop cover I'm happy to announce that Drupal Power Workshop, my latest video training course for Drupal, is now available. It's just under five hours long, and is the first of these courses to be recorded at the video2brain offices in Graz, Austria.


I traveled to the video2brain home office in Graz in late September to record some more training videos (more on that in a day or so), and prior to that, I had a very intense couple of months preparing the courses and working on other projects for clients. I didn't get out much.


I'm currently working on a new Drupal site with a lot of media: slideshows, movies, and audio. I'm taking the opportunity to use the much-in-development Media module. Because this site needs to go up soon, I'm using the more stable 7.x-1.2. It's a much more robust way of working with rich media than anything Drupal has had previously, but there are some things that need some extra work, like display of uploaded MP3s and movie files (as opposed to embedded media from other sites).


Getting Started with Drupal cover My second training course from video2brain is now available. It's a wicked humdinger, clocking in at nearly five and a half hours, and it's called Getting Started with Drupal.


If you use Drupal on any kind of regular basis, Drush is your friend. It's a command-line utility available for all platforms (including Windows as of version 5!) that can do sometimes-seemingly innumerable tasks for you. I've been using it for installing, enabling, and disabling modules and themes; clearing the Drupal cache; and running code and database updates for years now, but that's just scratching the surface.


I've been a member of the Drupal community for over six years. It was the first general CMS I felt struck a good balance of usability for me and my clients, and extensibility in a way that made sense to me. I could build a website to almost any set of requirements with it, and that was nifty. I've diversified since then, using WordPress on some projects and Drupal on others, but Drupal was the first one that stuck.


I had a really great time at DrupalCamp LA this weekend. It had been a couple months since I'd been able to make any of the community meetups, and it was nice to feel like a part of the community again.

It's been years since I did much (if I'm being honest, I think the right word is probably "any") presenting for more than one or two people at a time. Since I joined up with LA Drupal, though, I've been feeling the itch to get up and speak, so for DCLA I gave three talks. Here are links to the session pages, the slides, and the screencasts:

  1. The Power of Display Suite - Video / Slides
    This is an overview of Display Suite, a tremendously powerful and useful module for Drupal 6 and 7. This was one of the first presentations of the camp, and seemed to be very well-received by the folks in the room, and even remotely by the maintainer of the module! Thanks for Steve Rifkin for organizing it, and for the second half of the presentation. Unfortunately, I couldn't attend because of…
  2. A Bajillion Modules - Video / Slides
    Drupal has a ton of modules and themes available in the contributed repository. This presentation was part of the beginner's track, and gives a quick (especially at the end when I was running out of time) overview of a bunch of the good ones.
  3. My First Module - Video / Slides
    I think there are a lot of builders of Drupal themes who don't touch module development because it seems difficult. It certainly can be if you're talking about the big ones out there, but there are cases where writing a small, simple module is the way to go, and it's not difficult. This presentation goes over the basics.

I'm still catching up and recovering from the weekend's excitement, enrichment, and foolishness (the fun kind). Once I do, I'll probably post again with some reflections on and favorites of the session I attended. There was a lot of great stuff. Can't wait for next year!

(By the way, are you wondering if I'll ever update this website, maybe even turn it into a Drupal site? Me too!)



Subscribe to RSS - Drupal