Bug #94586
openDefault database instead of external database called when starting scheduler task via CLI
0%
Description
Hi there,
I have an environment with 2 configured external databases. All is fine, fetching data from these databases work as expected. Additionally there's EXT:external_import installed where in one of the custom steps I fetch data from an external database via Doctrine-Queries. The associated scheduler task fetches the data and it works if I manually run the task via backend scheduler.
Now the problem: This doesn't work if the task automatically starts via CLI/cronjob. Then the external database is not called but the default one, which of course can't work. In that case the following log message is stored in tx_externalimport_domain_model_log:
SELECT command denied to user 'username'@'localhost' for table 'pages' [0]
The current workaround is to bypass doctrine and directly connect to the database via pdo methods -> this works (with the same database configuration parameters). I already approved that it's not an external_import issue: https://github.com/cobwebch/external_import/issues/197
-----
TYPO3 10.4.17
external_import 5.1.1
Updated by Georg Ringer 6 months ago
- Status changed from New to Needs Feedback
sorry for the late response!
did you find a solution? I suggest that via CLI no TYPO3_CONTEXT is set and therefore the wrong config is set for TYPO3?
Updated by Alexander Rotzsch 6 months ago ยท Edited
No news on this. The workaround is still used, but now in TYPO3 11.
TYPO3_CONTEXT is a good point and probably the cause. Any idea how to properly solve this?
Updated by Garvin Hicking 6 months ago
You could call the scheduler like this:
TYPO3_CONTEXT="Production/Production" php /path/to/vendor/bin/typo3 scheduler:run
(Using your web context value, might be different from Production/Production)? The environment variable would be passend on.
Another possibility is to use an env file and for example helhum/env-connector. This hooks into composer and would always pass on the TYPO3_CONTEXT.