Migrating a website to Concrete5 from a different CMS
Permalink
We are planning to migrate a website to Concrete5 from a different CMS. The website has several sections with each having different page type & varied combination of elements (widgets/components/blocks/add-ons). And as part of the migration process, following is the list of high-level tasks that will be performed —
1. Exporting existing content database
2. Importing exported content into new Concrete5 specific database schema
3. Ensuring Concrete5 has all the required blocks to consume the imported content; this may require creating custom blocks/add-ons but that would be fine
4. Validating if the content (with all the pages & all the elements intact) is correctly imported into Concrete5
Now, the question is —
If we create a master template (page type) with all possible blocks that need to be supported and be able to see the imported content without any programming effort?
In other words, we have content inserted directly in the database and have a template/page type with all possible blocks, will Concrete5 be able to render a particular page without any customization or manual effort?
• If YES: what if the content, stored in the database, for a particular page requires more number of blocks or placeholders than provided by our master template and vice-versa?
For example: if “Page 01” in the current website has 20 images while our Concrete5 master template has provision for displaying 10 images only.
• If NO: Will there be a need to manually verify each and every page in Concrete5 against the source website?
Here we can assume that the —
• database structure is correctly configured in Concrete5
• all pages in Concrete5 website has similar page type
1. Exporting existing content database
2. Importing exported content into new Concrete5 specific database schema
3. Ensuring Concrete5 has all the required blocks to consume the imported content; this may require creating custom blocks/add-ons but that would be fine
4. Validating if the content (with all the pages & all the elements intact) is correctly imported into Concrete5
Now, the question is —
If we create a master template (page type) with all possible blocks that need to be supported and be able to see the imported content without any programming effort?
In other words, we have content inserted directly in the database and have a template/page type with all possible blocks, will Concrete5 be able to render a particular page without any customization or manual effort?
• If YES: what if the content, stored in the database, for a particular page requires more number of blocks or placeholders than provided by our master template and vice-versa?
For example: if “Page 01” in the current website has 20 images while our Concrete5 master template has provision for displaying 10 images only.
• If NO: Will there be a need to manually verify each and every page in Concrete5 against the source website?
Here we can assume that the —
• database structure is correctly configured in Concrete5
• all pages in Concrete5 website has similar page type
Thanks for your response, Jordan.
Agree with you that there would be certain amount of manual work involved.
We have a similar requirement for migrating blog content from another platform to C5 using add-ons like ProBlog which will surely need customization at programming level.
And as you said that we could import the database into a block that functions similarly, so will we required to create custom blocks and alter the database structure accordingly?
Can we assume that a content from a text block from the current CMS if imported correctly in the C5 database, C5 will render the content without requiring any PHP programming, etc.?
Again, thanks in advance for your response and appreciate your support with this.
Agree with you that there would be certain amount of manual work involved.
We have a similar requirement for migrating blog content from another platform to C5 using add-ons like ProBlog which will surely need customization at programming level.
And as you said that we could import the database into a block that functions similarly, so will we required to create custom blocks and alter the database structure accordingly?
Can we assume that a content from a text block from the current CMS if imported correctly in the C5 database, C5 will render the content without requiring any PHP programming, etc.?
Again, thanks in advance for your response and appreciate your support with this.
re: importing blog content: Well, if you're using an existing package like the ProBlog, you'll need to look at that package's schema and figure out how it stores blog posts, then convert your data from the other site as appropriate (I wouldn't recommend changing an existing package's code or schema as it will make it difficult to upgrade, and the author cannot provide support for modified code). But if you make your own blocks, then you are in control of what the schema looks like so theoretically you could make it match the other site you're importing from.
re: text block content: Well, I'm sure it will render correctly, but the challenge isn't so much with the content itself, but rather with the complicated schema involved in the placement of blocks on pages -- you need to programmatically create the pages you want the content to live in, and programmatically add blocks to them. This is certainly doable (look to the concrete/controllers/install.php file for a lot of sample code that creates pages and puts blocks on them), but not as straightforward as simply copying the content from the old site and pasting it into the appropriate pages/blocks in the new site. It's just a trade-off of programming time vs. admin assistant time -- if there's under 20-30 pages, I would go the manual copy/paste route. If significantly more, it's probably worth it to code something up. (But again we're just talking about plain old content blocks here -- if there is more complicated data like product catalog, etc., then it's not going to be realistic to code up import routines unless there are TONS AND TONS of data and it would take a week to copy it over manually).
HTH
-Jordan
re: text block content: Well, I'm sure it will render correctly, but the challenge isn't so much with the content itself, but rather with the complicated schema involved in the placement of blocks on pages -- you need to programmatically create the pages you want the content to live in, and programmatically add blocks to them. This is certainly doable (look to the concrete/controllers/install.php file for a lot of sample code that creates pages and puts blocks on them), but not as straightforward as simply copying the content from the old site and pasting it into the appropriate pages/blocks in the new site. It's just a trade-off of programming time vs. admin assistant time -- if there's under 20-30 pages, I would go the manual copy/paste route. If significantly more, it's probably worth it to code something up. (But again we're just talking about plain old content blocks here -- if there is more complicated data like product catalog, etc., then it's not going to be realistic to code up import routines unless there are TONS AND TONS of data and it would take a week to copy it over manually).
HTH
-Jordan
Yes, the volume that we are required to import involves thousands of pages hence migration scripts will surely need to be developed as you also suggested.
We are investigating other options too and hopefully the solution should become available soon.
Thanks for your detailed responses, Jordan. You have been a great help.
We are investigating other options too and hopefully the solution should become available soon.
Thanks for your detailed responses, Jordan. You have been a great help.
You might be able to import some of the content, if it's more of a database-style setup (for example, if you're talking about Drupal CCK/Views) -- then you could create a block in Concrete5 that functions similarly and import that data into the block's database tables.
But for plain old content pages, you're probably going to have to copy out the html from the old site and paste it into the new site. Images and files (e.g. downloadable PDF's) will need to be uploaded to the new site as well.
That's just based on my experience, though -- perhaps other people have tried something like this in the past and can speak to it?
-Jordan