We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog
  • Home
  • Forums

migrate exp_channel_data columns into exp_channel_data_field_x tables

How Do I?

Max Lazar's avatar
Max Lazar
341 posts
9 months ago
Max Lazar's avatar Max Lazar

Hello Team!

I have a pretty old site that I am updating to EE7. The site has about 400 fields(as result - 800+ columns in exp_channel_data table), and now I’m facing an issue exporting it to the production database because exp_channel_data is too large, causing the error: Row size too large (> 8126). Due to db specific, I can’t use workaround like SET GLOBAL innodb_strict_mode=OFF;.

Are there any utilities available to move field columns from this table to their own tables(exp_channel_data_field_x)?

If no such tools exist and I need to develop my own, are there any limitations I should be aware of? I believe most fields should work fine this way—at least all native ones, like text, field packs, etc.

Thanks!

       
jelle's avatar
jelle
87 posts
9 months ago
jelle's avatar jelle

Hi max! Long time no see! We have made a script that does that! Hit me or jcogs up in slack!

? 1
       
Tom Jaeger's avatar
Tom Jaeger
449 posts
9 months ago
Tom Jaeger's avatar Tom Jaeger

Hi Max!

Good to hear from you!

Yup, I’d check out the the Channel Migration add-on

Cheers, and hope you are well!

-Tom Jaeger

? 1
       
Max Lazar's avatar
Max Lazar
341 posts
9 months ago
Max Lazar's avatar Max Lazar

Hello Jelle! Your add-on did the job. Thanks! Saved me hours :-D Just one small modification was required to ensure it does not fail when trying to migrate data for fields that didn’t have any channels.

Convert.php Line 125

if ($field->getAllChannels()->count()) {
                $facade->migrateData($field->getAllChannels());
            }

Doing migration and QA now.

? 1
       
Max Lazar's avatar
Max Lazar
341 posts
9 months ago
Max Lazar's avatar Max Lazar

Hey Tom! I’m fine, hope you’re doing well too!

By the way, can we get a license check exception for common test domains and URLs from DDEV, for example? You know that in many cases, good development can include up to three live domains (dev/staging/prod), not including domains for local environments.

Cheers! Max

       
Tom Jaeger's avatar
Tom Jaeger
449 posts
9 months ago
Tom Jaeger's avatar Tom Jaeger

Hi Max,

This list should be what we have setup currently. Is there a specific one your looking for?

? 1
       
Max Lazar's avatar
Max Lazar
341 posts
9 months ago
Max Lazar's avatar Max Lazar

Thanks for the reference—I definitely missed it. But regarding ddev.site, it is not working in my case.

       
JCOGS Design's avatar
JCOGS Design
148 posts
9 months ago
JCOGS Design's avatar JCOGS Design

Hi Max

Thanks for the suggestion for an improvement to the Channel Data Migration utility. I have posted an updated version that includes your suggestion on the ExpressionEngine store.

?

? 2
       

Reply

Sign In To Reply

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.