<p>You have two main options with a challenge like this.</p>

<p>1) <strong>Do it manually</strong> - While this option doesn't always sound like the most glamourous option, it's often a fairly reasonable step to consider during migrations. Writing and debugging advanced code that is only going to be used once can be costly, and there are plenty of people who specialize in data entry who are capable of helping out if you prepare a good workflow and take the time to train them on the task.</p>

<p>2) <strong>Do it programatically</strong> - If you take this approach, you'll probably be using an <a href="https://en.wikipedia.org/wiki/Extract,_transform,_load" rel="nofollow">Extract, transform, load</a> Process (also referred to as an ETL Process). In your case this would roughly equate to:</p>

<ol>
<li>Extract the data from your ExpressionEngine database</li>
<li>Transform that data – processing the body and EE matrix haystack fields and updating the data into the format which you wish to import it into Craft</li>
<li>Load your new data into Craft (using a script or import plugin like Brad mentioned in the above comments)</li>
</ol>

<p>My firm runs a database migration service, <a href="https://thegreatmigration.net/" rel="nofollow">The Great Migration</a>, and I can confirm that it is possible to migrate ExpressionEngine sites using a "matrix image haystack" technique to Craft CMS. We have used both programmatic and manual steps in doing so for images, videos, and quotes using this technique. Your final solution will largely depend on the format and integrity of your source data and the desired format of your target data.</p>

CC BY-SA 3.0
2016-06-12T20:34:14.757Z
+1 for #1... I've often found that cheap data entry labor is the best way to go for something like this. Human eyes help prevent bizarre importing mistakes, and the cost of someone like that is usually about 1/10 of our hourly rate. Basically, 3 hours to write a script is more expensive than 20 hours of cheap manual labor.
Lindsey D
CC BY-SA 3.0
2016-06-24T17:07:29.407Z
I ended up manually copying the data over myself. It was horrible :) Too bad there's not a better solution out there. I'd be moving over a lot more EE sites if there were.
FortySeven Media
CC BY-SA 3.0
2016-06-12T15:54:20.823Z
2016-06-12T15:54:20.823Z
Ben Parizek
<p>So I'm taking the plunge from ExpressionEngine to Craft! I have a ton of entries I need to move over, though - and I used the "matrix image haystack" technique for my blog posts to inject the images into the body copy.</p>

<p>I love the Matrix layouts in Craft and would like to essentially put those images in their own "block" and separate the text around the haystack tags into their own blocks as well. I'm doubting that's possible, but I'm not going to be able to re-publish hundreds of blog posts a new way, either :)</p>

<p>Has anyone attempted anything like this?</p>

CC BY-SA 3.0
2016-06-10T18:38:19.067Z
Don't have a solid answer for you other than that's going to be some messy migration code. :)  You should be able to use something like this to get started, though: https://github.com/boboldehampsink/import
Brad Bell
<matrix><image><import><blocks>
Migrating Content from ExpressionEngine that used Matrix Image haystack Technique
# Migrating Content from ExpressionEngine that used Matrix Image haystack Technique

(Asked by: username_0 on 2016-06-09)

So I'm taking the plunge from ExpressionEngine to Craft! I have a ton of entries I need to move over, though - and I used the "matrix image haystack" technique for my blog posts to inject the images into the body copy.

I love the Matrix layouts in Craft and would like to essentially put those images in their own "block" and separate the text around the haystack tags into their own blocks as well. I'm doubting that's possible, but I'm not going to be able to re-publish hundreds of blog posts a new way, either :)

Has anyone attempted anything like this?

**Tags:** matrix, image, import, blocks

> **Comments:**
> **username_1**: Don't have a solid answer for you other than that's going to be some messy migration code. :)  You should be able to use something like this to get started, though: https://github.com/boboldehampsink/import  

---

## 1 answers

### Answer by username_2 on 2016-06-12. Score: 2

You have two main options with a challenge like this.

1) **Do it manually** - While this option doesn't always sound like the most glamourous option, it's often a fairly reasonable step to consider during migrations. Writing and debugging advanced code that is only going to be used once can be costly, and there are plenty of people who specialize in data entry who are capable of helping out if you prepare a good workflow and take the time to train them on the task.

2) **Do it programatically** - If you take this approach, you'll probably be using an [Extract, transform, load](https://en.wikipedia.org/wiki/Extract,_transform,_load) Process (also referred to as an ETL Process). In your case this would roughly equate to:

1. Extract the data from your ExpressionEngine database
2. Transform that data – processing the body and EE matrix haystack fields and updating the data into the format which you wish to import it into Craft
3. Load your new data into Craft (using a script or import plugin like Brad mentioned in the above comments)

My firm runs a database migration service, [The Great Migration](https://thegreatmigration.net/), and I can confirm that it is possible to migrate ExpressionEngine sites using a "matrix image haystack" technique to Craft CMS. We have used both programmatic and manual steps in doing so for images, videos, and quotes using this technique. Your final solution will largely depend on the format and integrity of your source data and the desired format of your target data.

> **Comments:**
> **username_3**: +1 for #1... I've often found that cheap data entry labor is the best way to go for something like this. Human eyes help prevent bizarre importing mistakes, and the cost of someone like that is usually about 1/10 of our hourly rate. Basically, 3 hours to write a script is more expensive than 20 hours of cheap manual labor.  
> **username_0**: I ended up manually copying the data over myself. It was horrible :) Too bad there's not a better solution out there. I'd be moving over a lot more EE sites if there were.  

---

