All add-ons currently require PHP 7.4 or greater.

On July 4th 2024 PHP 8.2 will be the new minimum requirement for all add-ons. Expect any add-on released after that date to require 8.2 or greater. Some releases may not immediately take advantage of 8.x specific features in PHP, which means you might, be able to continue using new releases in PHP 7.4, however, if you experience an error the first thing you should do is update to PHP 8.2 then create a support ticket if the error persists.

Publisher does not support the Fluid field type. Please do not contact asking when support will be available.

If you purchased an add-on from expressionengine.com, be sure to visit boldminded.com/claim to add the license to your account here on boldminded.com.

Ticket: Fatal installation error

Status Resolved
Add-on / Version DataGrab 5.0.3
Severity
EE Version 6.4.13

Zack Morgan

Jul 07, 2023

Hi,

Installing just-purchased datagrab on just-installed EE (PHP 8), I get the following error when clicking the ‘install’ button on the add-ons page:


BoldMinded\DataGrab\Dependency\Illuminate\Database\QueryException Caught

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table `exp_datagrab_failed_jobs` add unique `failed_jobs_uuid_unique`(`uuid`))

user/addons/datagrab/vendor-build/illuminate/database/Connection.php:588

Stack Trace: Please include when reporting this error

#0 user/addons/datagrab/vendor-build/illuminate/database/Connection.php(560): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->runQueryCallback(‘alter table `ex…’, Array, Object(Closure))
#1 user/addons/datagrab/vendor-build/illuminate/database/Connection.php(425): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->run(‘alter table `ex…’, Array, Object(Closure))
#2 user/addons/datagrab/vendor-build/illuminate/database/Schema/Blueprint.php(96): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->statement(‘alter table `ex…’)
#3 user/addons/datagrab/vendor-build/illuminate/database/Schema/Builder.php(318): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Blueprint->build(Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\MySqlConnection), Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Grammars\MySqlGrammar))
#4 user/addons/datagrab/vendor-build/illuminate/database/Schema/Builder.php(196): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Builder->build(Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Blueprint))
#5 user/addons/datagrab/updates/up_5_00_00.php(23): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Builder->create(‘failed_jobs’, Object(Closure))
#6 user/addons/datagrab/vendor-build/litzinger/basee/src/Updater.php(98): Update_5_00_00->doUpdate()
#7 user/addons/datagrab/upd.datagrab.php(85): BoldMinded\DataGrab\Dependency\Litzinger\Basee\Updater->runUpdates()
#8 ee/legacy/libraries/addons/Addons_installer.php(72): Datagrab_upd->install()
#9 ee/legacy/libraries/addons/Addons_installer.php(327): Addons_installer->install_module(‘datagrab’)
#10 ee/legacy/libraries/addons/Addons_installer.php(37): Addons_installer->_update_addon(‘datagrab’, ‘module’, ‘install’, false)
#11 ee/ExpressionEngine/Controller/Addons/Addons.php(1383): Addons_installer->install(‘datagrab’, ‘module’, false)
#12 ee/ExpressionEngine/Controller/Addons/Addons.php(562): ExpressionEngine\Controller\Addons\Addons->installModule(‘datagrab’)
#13 [internal function]: ExpressionEngine\Controller\Addons\Addons->install(Array)
#14 ee/ExpressionEngine/Core/Core.php(266): call_user_func_array(Array, Array)
#15 ee/ExpressionEngine/Core/Core.php(122): ExpressionEngine\Core\Core->runController(Array)
#16 ee/ExpressionEngine/Boot/boot.php(161): ExpressionEngine\Core\Core->run(Object(ExpressionEngine\Core\Request))
#17 REDACTED.php(144): require_once(’...’)
#17 REDACTED.php(144): require_once(’...’)


After trying this a second time, datagrab appeared in the ‘installed’ list, but clicking on it brings up this error:


Exception Caught

SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘delete_records’ in ‘field list’:
SELECT `id`, `name`, `description`, `passkey`, `status`, `last_record`, `total_records`, `delete_records`, `last_run`, `settings` FROM (`exp_datagrab`) WHERE `site_id` = 1 ORDER BY `name` ASC

ee/legacy/database/drivers/mysqli/mysqli_connection.php:114

Stack Trace: Please include when reporting this error

#0 ee/legacy/database/drivers/mysqli/mysqli_driver.php(112): CI_DB_mysqli_connection->query(‘SELECT `id`, `n…’)
#1 ee/legacy/database/DB_driver.php(260): CI_DB_mysqli_driver->_execute(‘SELECT `id`, `n…’)
#2 ee/legacy/database/DB_driver.php(175): CI_DB_driver->simple_query(‘SELECT `id`, `n…’)
#3 ee/legacy/database/DB_active_rec.php(1083): CI_DB_driver->query(‘SELECT `id`, `n…’)
#4 user/addons/datagrab/mcp.datagrab.php(119): CI_DB_active_record->get(‘exp_datagrab’)
#5 [internal function]: Datagrab_mcp->index()
#6 ee/ExpressionEngine/Controller/Addons/Addons.php(1535): call_user_func_array(Array, Array)
#7 ee/ExpressionEngine/Controller/Addons/Addons.php(812): ExpressionEngine\Controller\Addons\Addons->getModuleSettings(‘datagrab’, ‘index’, Array)
#8 [internal function]: ExpressionEngine\Controller\Addons\Addons->settings(‘datagrab’)
#9 ee/ExpressionEngine/Core/Core.php(266): call_user_func_array(Array, Array)
#10 ee/ExpressionEngine/Core/Core.php(122): ExpressionEngine\Core\Core->runController(Array)
#11 ee/ExpressionEngine/Boot/boot.php(161): ExpressionEngine\Core\Core->run(Object(ExpressionEngine\Core\Request))
#12 REDACTED.php(144): require_once(’...’)
#12 REDACTED.php(144): require_once(’...’)

Weirdly, the ‘updates’ tab on the add-ons page is showing that an upgrade is available for datagrab version 0.1.0.

Looking forward to hearing from you when you get back from your holidays!
Thanks
Zack

#1

BoldMinded (Brian)

Try this build https://www.dropbox.com/s/fuawa2dbjz7e9sk/datagrab-5.0.5-develop-3955389b.zip?dl=0

You may want to uninstall and try reinstalling.

#2

Zack Morgan

Thanks, uninstalled and re-installed but getting this error now:

BoldMinded\DataGrab\Dependency\Illuminate\Database\QueryException Caught

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table exp_datagrab_failed_jobs add unique failed_jobs_uuid_unique(uuid))

user/addons/datagrab/vendor-build/illuminate/database/Connection.php:588

Stack Trace: Please include when reporting this error

0 user/addons/datagrab/vendor-build/illuminate/database/Connection.php(560): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->runQueryCallback(‘alter table `ex…’, Array, Object(Closure))

1 user/addons/datagrab/vendor-build/illuminate/database/Connection.php(425): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->run(‘alter table `ex…’, Array, Object(Closure))

2 user/addons/datagrab/vendor-build/illuminate/database/Schema/Blueprint.php(96): BoldMinded\DataGrab\Dependency\Illuminate\Database\Connection->statement(‘alter table `ex…’)

3 user/addons/datagrab/vendor-build/illuminate/database/Schema/Builder.php(318): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Blueprint->build(Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\MySqlConnection), Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Grammars\MySqlGrammar))

4 user/addons/datagrab/vendor-build/illuminate/database/Schema/Builder.php(196): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Builder->build(Object(BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Blueprint))

5 user/addons/datagrab/updates/up_5_00_00.php(23): BoldMinded\DataGrab\Dependency\Illuminate\Database\Schema\Builder->create(‘failed_jobs’, Object(Closure))

6 user/addons/datagrab/vendor-build/litzinger/basee/src/Updater.php(98): Update_5_00_00->doUpdate()

7 user/addons/datagrab/upd.datagrab.php(85): BoldMinded\DataGrab\Dependency\Litzinger\Basee\Updater->runUpdates()

8 ee/legacy/libraries/addons/Addons_installer.php(72): Datagrab_upd->install()

9 ee/legacy/libraries/addons/Addons_installer.php(327): Addons_installer->install_module(‘datagrab’)

10 ee/legacy/libraries/addons/Addons_installer.php(37): Addons_installer->_update_addon(‘datagrab’, ‘module’, ‘install’, false)

11 ee/ExpressionEngine/Controller/Addons/Addons.php(1383): Addons_installer->install(‘datagrab’, ‘module’, false)

12 ee/ExpressionEngine/Controller/Addons/Addons.php(562): ExpressionEngine\Controller\Addons\Addons->installModule(‘datagrab’)

13 [internal function]: ExpressionEngine\Controller\Addons\Addons->install(Array)

14 ee/ExpressionEngine/Core/Core.php(266): call_user_func_array(Array, Array)

15 ee/ExpressionEngine/Core/Core.php(122): ExpressionEngine\Core\Core->runController(Array)

16 ee/ExpressionEngine/Boot/boot.php(161): ExpressionEngine\Core\Core->run(Object(ExpressionEngine\Core\Request))

17 admin.php(144): require_once(‘…’)

17 admin.php(144): require_once(‘…’)

#3

BoldMinded (Brian)

What version of MySQL are you running??

#4

Zack Morgan

10.3.39-MariaDB

#5

BoldMinded (Brian)

Are you able to try MySQL v8?

#6

Zack Morgan

Not on this server unfortunately. There is just the one MySQL version, and PHP from 5 up to 8.

#7

BoldMinded (Brian)

PHP 8.0, or PHP 8.1?

#8

BoldMinded (Brian)

I think you’re going to have to downgrade to at least Maria 10.2. DataGrab uses Queue package from Laravel 8, which does not support 10.3. It’s going to be a few days before I can even get around to testing in 10.2 or 10.3 let alone upgrading the Queue package to a more recent version.

#9

Zack Morgan

The site is on 8.0, though the PHP version could be downgraded if needed. There isn’t any option to downgrade Maria version.

If you planning on making DataGrab compatible in the next few weeks, that would work for me.

Alternatively, I don’t mind downgrading to DataGrab 4 for this site - data import is an essential part of the spec , but they will just be small files of simple data and I know v4 can handle it!

#10

BoldMinded (Brian)

I just tried installing with PHP 8.1 and MariaDB 10.3 and 10.4, and it installed 4 times without error.

#11

BoldMinded (Brian)

What database engine are you using? Something other than InnoDB? https://stackoverflow.com/questions/62062132/laravel-1071-specified-key-was-too-long-max-key-length-is-1000-bytes

#12

BoldMinded (Brian)

DataGrab is using Laravel’s migration command to create the table, so I think you need to switch to InnoDB instead of MyISAM, otherwise it’s going to be several weeks or longer until I can get around to upgrading the Queue package in DataGrab.

#13

Zack Morgan

Hmm, the exp_config table is MyISAM, and that is indeed the default storage engine, but the other EE tables are all InnoDB.

I’ve started inputting data into the site, so not sure how I feel about messing with db settings right now - it’s not something I’ve had to deal with before. Maybe downgrading to datagrab 4 is going to be the quick fix I was looking for…

#14

BoldMinded (Brian)

I don’t think you’ll have any problems changing db engines. Just make a backup, and if there is any issue it’ll tell you.

I’m going to go ahead and close this ticket then.

Login to reply