Open
Description
I'm researching a Playground mount error and found out that WooCommerce deactivates after wp-cron.php
runs for the first time after WooCommerce was activated.
WooCommerce was deactivated because it encountered this WordPress database error.
[07-Jul-2025 06:13:21 UTC] WordPress database error <div style="clear:both"> </div>
<div class="queries" style="clear:both;margin-bottom:2px;border:red dotted thin;">
<p>MySQL query:</p>
<p>ALTER TABLE wp_woocommerce_downloadable_product_permissions DROP PRIMARY KEY, ADD `permission_id` bigint(20) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT;</p>
<p>Queries made or created this session were:</p>
<ol>
<li>Executing: BEGIN IMMEDIATE | (no parameters)</li>
<li>Executing: SELECT 1 FROM sqlite_temp_schema WHERE type = 'table' AND name = ? | parameters: wp_woocommerce_downloadable_product_permissions</li>
<li>Executing: SELECT
COLUMN_NAME,
LOWER(COLUMN_NAME) AS COLUMN_NAME_LOWERCASE
FROM `_wp_sqlite_mysql_information_schema_columns` WHERE table_schema = ? AND table_name = ? | parameters: database_name_here, wp_woocommerce_downloadable_product_permissions</li>
<li>Executing: SELECT 1 FROM sqlite_temp_schema WHERE type = 'table' AND name = ? | parameters: wp_woocommerce_downloadable_product_permissions</li>
<li>Executing:
SELECT MAX(ordinal_position)
FROM `_wp_sqlite_mysql_information_schema_columns`
WHERE table_schema = ?
AND table_name = ?
| parameters: database_name_here, wp_woocommerce_downloadable_product_permissions</li>
<li>Executing: INSERT INTO `_wp_sqlite_mysql_information_schema_columns` (`table_schema`, `table_name`, `column_name`, `ordinal_position`, `column_default`, `is_nullable`, `data_type`, `character_maximum_length`, `character_octet_length`, `numeric_precision`, `numeric_scale`, `datetime_precision`, `character_set_name`, `collation_name`, `column_type`, `column_key`, `extra`, `privileges`, `column_comment`, `generation_expression`, `srs_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) | parameters: database_name_here, wp_woocommerce_downloadable_product_permissions, permission_id, 12, , NO, bigint, , , 20, 0, , , , bigint(20) unsigned, PRI, auto_increment, select,insert,update,references, , , </li>
<li>Executing: ROLLBACK | (no parameters)</li>
</ol>
</div>
<div style="clear:both;margin-bottom:2px;border:red dotted thin;" class="error_message" style="border-bottom:dotted blue thin;">
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'permission_id'
</div>
<p>Backtrace:</p>
<pre>#0 /internal/shared/sqlite-database-integration/wp-includes/sqlite-ast/class-wp-sqlite-driver.php(3992): WP_SQLite_Driver->new_driver_exception('SQLSTATE[42S21]...', '42S21')
#1 /internal/shared/sqlite-database-integration/wp-includes/sqlite-ast/class-wp-sqlite-driver.php(681): WP_SQLite_Driver->convert_information_schema_exception(Object(WP_SQLite_Information_Schema_Exception))
#2 /internal/shared/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(499): WP_SQLite_Driver->query('ALTER TABLE wp_...')
#3 /internal/shared/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(440): WP_SQLite_DB->_do_query('ALTER TABLE wp_...')
#4 /internals/symlinks/Users/bero/Projects/woocommerce/plugins/woocommerce/includes/class-wc-install.php(1574): WP_SQLite_DB->query('ALTER TABLE wp_...')
#5 /internals/symlinks/Users/bero/Projects/woocommerce/plugins/woocommerce/includes/class-wc-install.php(557): WC_Install::create_tables()
#6 /internals/symlinks/Users/bero/Projects/woocommerce/plugins/woocommerce/includes/class-wc-install.php(513): WC_Install::install_core()
#7 /wordpress/wp-includes/class-wp-hook.php(324): WC_Install::install(false)
#8 /wordpress/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array)
#9 /wordpress/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#10 /wordpress/wp-admin/includes/plugin.php(703): do_action('activate_woocom...', false)
#11 /wordpress/wp-admin/plugins.php(60): activate_plugin('woocommerce/woo...', 'http://127.0.0....', false)
#12 {main}</pre>
for query ALTER TABLE wp_woocommerce_downloadable_product_permissions DROP PRIMARY KEY, ADD `permission_id` bigint(20) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT; made by activate_plugin, do_action('activate_woocommerce/woocommerce.php'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Install::install, WC_Install::install_core, WC_Install::create_tables, WP_SQLite_DB->query, WP_SQLite_DB->print_error