Skip to content

DB issue when using mailpoet聽#422

Open

Description

@plus8

hi guys/gals/thembies/furries,

please excuse my ignorance, but I've been running sqlite dbs on my sites for a while now and it's been fantastic. Measurable performance improvements and overall top marks 馃槃

however, recently I encountered an issue with mailpoet (mailer sending plugin) which seems to throw a sqlite error.

Initially I reported it to mailpoet staff who have taken note but pointed out this might be worth reporting here too, so here I am.

I'm not expecting anything, just reporting this in the hope that it's useful information to someone.

As of version 5.28 of mailpoet i have been seeing the following error at the top of the admin dashboard (below).

Hopefully it makes more sense to y'all than it does me.

Thank you for your work so far. The SQLite integration has been awesome and hopefully this helps in improving compatibility.

best wishes,

Plus8


Migration "MailPoet\Migrations\Db\Migration_20260504_120000_Db" failed. Details: An exception occurred while executing a query:

MySQL query:

SELECT COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'wp_mailpoet_subscribers'
AND COLUMN_NAME = 'source'

Queries made or created this session were:

Executing: BEGIN | (no parameters)

Executing: SELECT COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = :param0
AND COLUMN_NAME = :param1 | parameters: wp_mailpoet_subscribers, source

Executing: ROLLBACK | (no parameters)

Error occurred at line 4229 in Function handle_error. Error message was: SQLSTATE[HY000]: General error: 1 no such table: INFORMATION_SCHEMA.COLUMNS.

Backtrace:

#0 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(549): WP_SQLite_Translator->get_error_message()

#1 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(455): WP_SQLite_DB->_do_query()
#2 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/WPDB/Connection.php(115): WP_SQLite_DB->query()
#3 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/WPDB/Connection.php(35): MailPoet\Doctrine\WPDB\Connection->runQuery()
#4 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/WPDB/Statement.php(71): MailPoet\Doctrine\WPDB\Connection->query()
#5 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Connection.php(418): MailPoet\Doctrine\WPDB\Statement->execute()
#6 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Connection.php(257): MailPoetVendor\Doctrine\DBAL\Connection->executeQuery()
#7 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrations/Db/Migration_20260504_120000_Db.php(21): MailPoetVendor\Doctrine\DBAL\Connection->fetchOne()
#8 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrator/Runner.php(35): MailPoet\Migrations\Db\Migration_20260504_120000_Db->run()
#9 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrator/Migrator.php(53): MailPoet\Migrator\Runner->runMigration()
#10 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Activator.php(85): MailPoet\Migrator\Migrator->run()
#11 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Activator.php(67): MailPoet\Config\Activator->processActivate()
#12 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Initializer.php(493): MailPoet\Config\Activator->activate()
#13 /var/www/plus8/wp-includes/class-wp-hook.php(341): MailPoet\Config\Initializer->maybeRunActivator()
#14 /var/www/plus8/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
#15 /var/www/plus8/wp-includes/plugin.php(522): WP_Hook->do_action()
#16 /var/www/plus8/wp-settings.php(771): do_action()
#17 /var/www/plus8/wp-config.php(103): require_once('...')
#18 /var/www/plus8/wp-load.php(50): require_once('...')
#19 /var/www/plus8/wp-admin/admin.php(35): require_once('...')
#20 /var/www/plus8/wp-admin/index.php(10): require_once('...')
#21 {main}

Activity

  1. JanJakes commented on Jul 7, 2026

    @JanJakes
    Member

    Hi @plus8, thanks for reporting this! Could you, please, try it with the latest 3.0 RC version? You'd need to download the plugin from the release assets. For RC 7, that's https://github.com/WordPress/sqlite-database-integration/releases/download/v3.0.0-rc.7/plugin-sqlite-database-integration.zip.

  2. plus8 commented on Jul 8, 2026

    @plus8
    Author

    hi, thanks for the update. I've downloaded the V3-RC7 but it still dies. Please see the error output below (looks to be an issue with date/time formats now rather than missing table):

    FWIW - I tested it on two sites and got the same result.

    Thank you!

    best wishes,

    Plus8

    Migration "MailPoet\Migrations\Db\Migration_20260504_120000_Db" failed. Details: An exception occurred while executing a query:

    MySQL query:

    ALTER TABLE wp_mailpoet_subscribers
    MODIFY source enum(
    'form',
    'imported',
    'administrator',
    'api',
    'wordpress_user',
    'wordpress_user_deleted',
    'woocommerce_user',
    'woocommerce_checkout',
    'unknown'
    ) DEFAULT 'unknown'

    Queries made or created this session were:

    Executing: BEGIN IMMEDIATE | (no parameters)
    
    Executing: SELECT 1 FROM sqlite_temp_master WHERE type = 'table' AND name = ? | parameters: wp_mailpoet_subscribers
    
    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: sqlite_database, wp_mailpoet_subscribers
    
    Executing: SELECT 1 FROM sqlite_temp_master WHERE type = 'table' AND name = ? | parameters: wp_mailpoet_subscribers
    
    Executing: UPDATE `_wp_sqlite_mysql_information_schema_columns` SET `table_schema` = ?, `table_name` = ?, `column_name` = ?, `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` = ? WHERE `table_schema` = ? AND `table_name` = ? AND `column_name` = ? | parameters: sqlite_database, wp_mailpoet_subscribers, source, unknown, YES, enum, 22, 88, , , , utf8mb4, utf8mb4_0900_ai_ci, enum('form','imported','administrator','api','wordpress_user','wordpress_user_deleted','woocommerce_user','woocommerce_checkout','unknown'), , , select,insert,update,references, , , , sqlite_database, wp_mailpoet_subscribers, source
    
    Executing: PRAGMA foreign_keys | (no parameters)
    
    Executing: PRAGMA foreign_keys = OFF | (no parameters)
    
    Executing:
    SELECT *
    FROM `_wp_sqlite_mysql_information_schema_tables`
    WHERE table_type = 'BASE TABLE'
    AND table_schema = ?
    AND table_name = ?
    | parameters: sqlite_database, wp_mailpoet_subscribers
    
    Executing: SELECT * FROM `_wp_sqlite_mysql_information_schema_columns` WHERE table_schema = ? AND table_name = ? ORDER BY ordinal_position | parameters: sqlite_database, wp_mailpoet_subscribers
    
    Executing:
    SELECT *
    FROM `_wp_sqlite_mysql_information_schema_statistics`
    WHERE table_schema = ?
    AND table_name = ?
    ORDER BY
    INDEX_NAME = 'PRIMARY' DESC,
    NON_UNIQUE = '0' DESC,
    INDEX_TYPE = 'SPATIAL' DESC,
    INDEX_TYPE = 'BTREE' DESC,
    INDEX_TYPE = 'FULLTEXT' DESC,
    ROWID,
    SEQ_IN_INDEX
    | parameters: sqlite_database, wp_mailpoet_subscribers
    
    Executing: SELECT * FROM `_wp_sqlite_mysql_information_schema_referential_constraints` WHERE constraint_schema = ? AND table_name = ? ORDER BY constraint_name | parameters: sqlite_database, wp_mailpoet_subscribers
    
    Executing: SELECT tc.*, cc.check_clause
    FROM `_wp_sqlite_mysql_information_schema_table_constraints` tc
    JOIN `_wp_sqlite_mysql_information_schema_check_constraints` cc ON cc.constraint_name = tc.constraint_name
    WHERE tc.constraint_schema = ?
    AND tc.table_name = ?
    ORDER BY tc.constraint_name | parameters: sqlite_database, wp_mailpoet_subscribers
    
    Executing: CREATE TABLE `_wp_sqlite_tmp_wp_mailpoet_subscribers_6a4e6a51ef8e6` (
    `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    `wp_user_id` INTEGER PRIMARY KEY AUTOINCREMENT,
    `first_name` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_name` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `email` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `status` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `subscribed_ip` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `confirmed_ip` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `confirmed_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `created_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `updated_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `deleted_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `unconfirmed_data` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `source` TEXT COLLATE NOCASE DEFAULT 'unknown',
    `is_woocommerce_user` INTEGER PRIMARY KEY AUTOINCREMENT,
    `count_confirmations` INTEGER PRIMARY KEY AUTOINCREMENT,
    `last_subscribed_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `unsubscribe_token` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `link_token` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `engagement_score` REAL PRIMARY KEY AUTOINCREMENT,
    `engagement_score_updated_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_engagement_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `woocommerce_synced_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `email_count` INTEGER PRIMARY KEY AUTOINCREMENT,
    `last_sending_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_open_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_click_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_purchase_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_page_view_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `last_confirmation_email_sent_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `time_zone` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `time_zone_source` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT,
    `time_zone_confidence` INTEGER PRIMARY KEY AUTOINCREMENT,
    `time_zone_updated_at` TEXT COLLATE NOCASE PRIMARY KEY AUTOINCREMENT
    ) STRICT | (no parameters)
    
    Executing: ROLLBACK | (no parameters)
    

    SQLSTATE[HY000]: General error: 1 table "_wp_sqlite_tmp_wp_mailpoet_subscribers_6a4e6a51ef8e6" has more than one primary key

    Backtrace:

    #0 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/database/sqlite/class-wp-pdo-mysql-on-sqlite.php(982): WP_PDO_MySQL_On_SQLite->new_driver_exception()

    #1 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/database/sqlite/class-wp-sqlite-driver.php(161): WP_PDO_MySQL_On_SQLite->query()

    #2 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(503): WP_SQLite_Driver->query()

    #3 /var/www/plus8/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(423): WP_SQLite_DB->_do_query()

    #4 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/WPDB/Connection.php(115): WP_SQLite_DB->query()

    #5 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/WPDB/Connection.php(35): MailPoet\Doctrine\WPDB\Connection->runQuery()

    #6 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Connection.php(420): MailPoet\Doctrine\WPDB\Connection->query()

    #7 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrations/Db/Migration_20260504_120000_Db.php(29): MailPoetVendor\Doctrine\DBAL\Connection->executeQuery()

    #8 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrator/Runner.php(35): MailPoet\Migrations\Db\Migration_20260504_120000_Db->run()

    #9 /var/www/plus8/wp-content/plugins/mailpoet/lib/Migrator/Migrator.php(53): MailPoet\Migrator\Runner->runMigration()

    #10 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Activator.php(85): MailPoet\Migrator\Migrator->run()

    #11 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Activator.php(67): MailPoet\Config\Activator->processActivate()

    #12 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Initializer.php(514): MailPoet\Config\Activator->activate()

    #13 /var/www/plus8/wp-includes/class-wp-hook.php(341): MailPoet\Config\Initializer->maybeRunActivator()

    #14 /var/www/plus8/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()

    #15 /var/www/plus8/wp-includes/plugin.php(522): WP_Hook->do_action()

    #16 /var/www/plus8/wp-settings.php(771): do_action()

    #17 /var/www/plus8/wp-config.php(103): require_once('...')

    #18 /var/www/plus8/wp-load.php(50): require_once('...')

    #19 /var/www/plus8/wp-admin/admin.php(35): require_once('...')

    #20 {main}

    MailPoet Error: MailPoetVendor\Doctrine\DBAL\Types\ConversionException: Could not convert database value "2026" to Doctrine Type datetimetz. Expected format: Y-m-d H:i:s in /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Types/ConversionException.php:27
    Stack trace:
    #0 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Types/DateTimeTzType.php(45): MailPoetVendor\Doctrine\DBAL\Types\ConversionException::conversionFailedFormat()
    #1 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php(95): MailPoetVendor\Doctrine\DBAL\Types\DateTimeTzType->convertToPHPValue()
    #2 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php(44): MailPoetVendor\Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateRowData()
    #3 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php(128): MailPoetVendor\Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateAllData()
    #4 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php(546): MailPoetVendor\Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll()
    #5 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/EntityRepository.php(79): MailPoetVendor\Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll()
    #6 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/EntityRepository.php(74): MailPoetVendor\Doctrine\ORM\EntityRepository->findBy()
    #7 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/Repository.php(86): MailPoetVendor\Doctrine\ORM\EntityRepository->findAll()
    #8 /var/www/plus8/wp-content/plugins/mailpoet/lib/Settings/SettingsController.php(239): MailPoet\Doctrine\Repository->findAll()
    #9 /var/www/plus8/wp-content/plugins/mailpoet/lib/Settings/SettingsController.php(43): MailPoet\Settings\SettingsController->ensureLoaded()
    #10 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Initializer.php(654): MailPoet\Settings\SettingsController->get()
    #11 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Initializer.php(410): MailPoet\Config\Initializer->setupWoocommerceTransactionalEmails()
    #12 /var/www/plus8/wp-includes/class-wp-hook.php(341): MailPoet\Config\Initializer->preInitialize()
    #13 /var/www/plus8/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
    #14 /var/www/plus8/wp-includes/plugin.php(522): WP_Hook->do_action()
    #15 /var/www/plus8/wp-settings.php(771): do_action()
    #16 /var/www/plus8/wp-config.php(103): require_once('...')
    #17 /var/www/plus8/wp-load.php(50): require_once('...')
    #18 /var/www/plus8/wp-admin/admin.php(35): require_once('...')
    #19 {main}

    MailPoet Error: MailPoetVendor\Doctrine\DBAL\Types\ConversionException: Could not convert database value "2026" to Doctrine Type datetimetz. Expected format: Y-m-d H:i:s in /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Types/ConversionException.php:27
    Stack trace:
    #0 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/dbal/src/Types/DateTimeTzType.php(45): MailPoetVendor\Doctrine\DBAL\Types\ConversionException::conversionFailedFormat()
    #1 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php(95): MailPoetVendor\Doctrine\DBAL\Types\DateTimeTzType->convertToPHPValue()
    #2 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/SimpleObjectHydrator.php(44): MailPoetVendor\Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateRowData()
    #3 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Internal/Hydration/AbstractHydrator.php(128): MailPoetVendor\Doctrine\ORM\Internal\Hydration\SimpleObjectHydrator->hydrateAllData()
    #4 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/Persisters/Entity/BasicEntityPersister.php(546): MailPoetVendor\Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll()
    #5 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/EntityRepository.php(79): MailPoetVendor\Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll()
    #6 /var/www/plus8/wp-content/plugins/mailpoet/vendor-prefixed/doctrine/orm/src/EntityRepository.php(74): MailPoetVendor\Doctrine\ORM\EntityRepository->findBy()
    #7 /var/www/plus8/wp-content/plugins/mailpoet/lib/Doctrine/Repository.php(86): MailPoetVendor\Doctrine\ORM\EntityRepository->findAll()
    #8 /var/www/plus8/wp-content/plugins/mailpoet/lib/Settings/SettingsController.php(239): MailPoet\Doctrine\Repository->findAll()
    #9 /var/www/plus8/wp-content/plugins/mailpoet/lib/Settings/SettingsController.php(43): MailPoet\Settings\SettingsController->ensureLoaded()
    #10 /var/www/plus8/wp-content/plugins/mailpoet/lib/Services/Bridge.php(101): MailPoet\Settings\SettingsController->get()
    #11 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/ServicesChecker.php(84): MailPoet\Services\Bridge::isPremiumKeySpecified()
    #12 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Menu.php(845): MailPoet\Config\ServicesChecker->isPremiumKeyValid()
    #13 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Menu.php(128): MailPoet\Config\Menu->checkPremiumKey()
    #14 /var/www/plus8/wp-content/plugins/mailpoet/lib/Config/Initializer.php(431): MailPoet\Config\Menu->init()
    #15 /var/www/plus8/wp-includes/class-wp-hook.php(341): MailPoet\Config\Initializer->initialize()
    #16 /var/www/plus8/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters()
    #17 /var/www/plus8/wp-includes/plugin.php(522): WP_Hook->do_action()
    #18 /var/www/plus8/wp-settings.php(771): do_action()
    #19 /var/www/plus8/wp-config.php(103): require_once('...')
    #20 /var/www/plus8/wp-load.php(50): require_once('...')
    #21 /var/www/plus8/wp-admin/admin.php(35): require_once('...')
    #22 {main}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions