Skip Navigation

Resolved

Overview of the issue

When HyperDB is installed, you might get the the following error when creating a translation duplicate:


WordPress database error Field 'translator_id' doesn't have a default value for query INSERT INTO `wp_icl_translation_status` (`status`, `translation_id`) VALUES ('9', '3855') made by WPML_Post_Status::set_status

The reason is that HyperDB switches on incompatible SQL modes: ‘NO_ZERO_DATE’, ‘ONLY_FULL_GROUP_BY’, ‘STRICT_TRANS_TABLES’, ‘STRICT_ALL_TABLES’, ‘TRADITIONAL’. These modes were declared as incompatible from WordPress 3.9 version and newer, and are switched off in the standard wpdb class.

If such incompatible modes are set in MySQL settings on your server, and HyperDB is installed on the site, then errors occur when creating duplicates in WPML.

WPML development team maintains support for features officially supported by WordPress, which is why a fix for HyperDB cannot be included in the WPML core code.

Workaround

We created a special plugin named WPML HyperDB, which fixes the problem described above. The plugin can be downloaded here