About migration from other CMS

Permalink 2 users found helpful

I like this Concrete5, but i need to migrate a large site from other CMS. Somebody have a solution about this?.

Thanks :-)

View Replies: View Best Answer
Steevb replied on at Permalink Reply
A migration is dependent in several ways on the CMS implementation and redesign. Some examples: Wire frames, New detailed sitemaps, CMS implemented, New templates coded, CMS configured (with templating, workflow, meta tags etc.)

You'll need a complete breakdown of all of the assets in the system, either in database or spreadsheet/csv format. This breakdown should list all files by category, such as HTML, JSP, SWF, JPG. Don’t miss any categories.


Rebuild your existing site 'The concrete5 way' and move your content over........

Baker, Bigace, Bitweaver, Drupal, Joomla, SilverStripe and Wordpress all have there own structure and template system. I cannot drop one inside another.

Migration tools will not work properly, shortcuts and cheating will cause trouble and get very messy...

Build your site, for whatever CMS you use, properly and then adapt it to suit your preferred CMS.

ScottC replied on at Permalink Best Answer Reply
depending on the cms you are porting from it isn't hard to write the correct script to replicate a site's structure and general page properties in concrete5 in one fell swoop, though it might take a bit of tweaking after the fact.

This is definitely possible, there just isn't an "easy" button.
madelyn replied on at Permalink Reply
Thanks about your answers.

I will write the script, but I'm new in C5 and its database structure is confuse for me still.
jaredquinn replied on at Permalink Reply
You're probably best off not just doing a database convert, as C5 is structured differently to most other CMSes. C5 allows you to arbitrarily place disparate content blocks in your page layouts.

There are a few ways I've tackled this in the past.

The most effective and reliable way I've found to date is to find some cheap labour who can copy/paste and check the content, and pay them to do it manually.

If you really want to do it automatically, then read the contents from the old database and use C5's API to create pages, blocks and content - this will ensure that everything gets created in the database in a reliable, useful and concretey way.

jeckerman replied on at Permalink Reply
Hi Madelyn, did you ever go down this route and write a script to convert that content? I'm doing the same myself, moving a site from DotNetNuke to C5.

- Josh
madelyn replied on at Permalink Reply
I'm adapting the okhayat's script
http://www.concrete5.org/profile/-/view/1849/... here:http://www.concrete5.org/download_file/-/17516/...

My old CMS is too complex,okhayat's script was a great helpful

Madelyn :-)
Pritam replied on at Permalink Reply
Would this work for migrating a Drupal site, or do I have to use this script that you mentioned in the link post as a starting point and then modify it as per individual requirement ?
madelyn replied on at Permalink Reply

Use that script as a starting point and then modify it.

other alternative at http://www.concrete5.org/community/forums/customizing_c5/mass_addin...

Madelyn :-)
jeckerman replied on at Permalink Reply
Usted es un ahorrador de vida! :-) Definitely have some work to do making the script meet my needs, but the time you've saved me. Thank you! :-)

- Josh
ubweb replied on at Permalink Reply
This my modified version of okhayat's script.
It's more generic in nature...should work with any CMS
All you got to do is get in the right fields via sql query.

<?php defined('C5_EXECUTE') or die(_("Access Denied."));?>
<h1>Content Import test</h1>
<?php if ($_POST['begin']) {
// section handle and page under which the imported pages will be added
$section_handle = $_POST['handle']; //handle (page type)
$section_ID = $_POST['section_ID']; //page ID
$data_query = $_POST['sql_query']; //query
$limit = intval($_POST['limit']); // Total records limit
$offset = intval($_POST['offset']); // Starting from record number
$articles = Page::getByID($section_ID);
$collection_type = CollectionType::getByHandle($section_handle);
$db = Loader::db();
$rs = $db->execute($data_query." limit $offset,$limit");
TeKnoZiz replied on at Permalink Reply
How do you add/call this from Concrete5? I tried adding as single page but it wouldn't work.