missing wp_download_log table due to MySQL issue with DATETIME field default val
-
I have identified a small issue that was preventing download logs from being kept on my installation.
When installed, the plugin creates a table with the following command (from
mysql.log
):CREATE TABLE <code>wp_download_log</code> ( ID bigint(20) NOT NULL auto_increment, type varchar(200) NOT NULL default 'download', user_id bigint(20) NOT NULL, user_ip varchar(200) NOT NULL, user_agent varchar(200) NOT NULL, download_id bigint(20) NOT NULL, version_id bigint(20) NOT NULL, version varchar(200) NOT NULL, download_date datetime NOT NULL default '0000-00-00 00:00:00', download_status varchar(200) NULL, download_status_message varchar(200) NULL, PRIMARY KEY (ID), KEY attribute_name (download_id) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci
On my development machine, an Ubuntu with MySQL
VERSION()
5.7.16-0ubuntu0.16.04.1-log
the default value fordownload_date
is not allowed. So the table was never created. Fortunately the plugin still worked but I was getting the following error in the logs when a download was being made:PHP message: WordPress database error Table 'wp_dev.wp_download_log' doesn't exist for query SHOW FULL COLUMNS FROM 'wp_download_log' made by require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array, DLM_Download_Handler->handler, DLM_Download_Handler->trigger, DLM_Download_Handler->log, DLM_Logging->create_log
What I did was I went and created the table manually, substituting
0000-00-00 00:00:00
withCURRENT_TIME
. Now the table is being populated correctly on every download hit.Incidentally,
CURRENT_TIME
is NOT a valid default value for DATETIME fields on my Debian machine, with version 5.5.52-0+deb8u1 . This feature was added in MySQL 5.6.5 for DATETIME fields. Also, that particular collation was not available on that machine so I had to leave it out.Just pointing this out in case it’s something that can be fixed in a future version. I have already solved the issue for myself.
Thanks for taking the time to read. Apologies if it’s already fixed.
- The topic ‘missing wp_download_log table due to MySQL issue with DATETIME field default val’ is closed to new replies.