Database row length exceeded - too many varchar(100) created for radioenums, unable to add new custom fields

Radioenums are handled as enums in Suitecrm which are mapped to varchar(100)

With the utf-8 charset varchar(100) can take up to 300 Bytes in a MYSQL table row. Mysql does not allow more than 64k in a row except for blobs and text columns which are stored externally.

What is the best way to replace varchar(100) with text for radioenums?

The general rule is that whenever people are adding too many custom fields, they should be considering different database designs. Multiplicity should be handled with related tables that capture what is common in each thing, not with tons of different things.

If you can tell us what your data is like, roughly, maybe I can suggest a different design.

We are an EMS provider and the radioenums added to the Opportunities module store properties of customer requirements of an opportunity.

Will the assembly need special coatings, ist the customer creditworthy, do we need special tooling, test equipment etc…

Several pdf files are created from the custom fields and later used for processing orders.

So typically if all of those are “Requirements”, you would add a new module called Requirements and relate it to the Opportunities. Each requirement could have a name, and some generic properties where you can fit all the information you need. These requirements would show as a subpanel, and you could list them, or search for them, get reports by Requirement, etc.

You can also consider working with an exisitng module (saves you work and gives you added functionality which might be useful). The Product module and the Quotes Line items are possibilities you could examine.