opencast-ilias / OpenCast

Opencast plugin for ILIAS LMS. The plugin shows a Opencast series as an ILIAS object. This version of the ILIAS plugin for Opencast is operated and developed collaboratively by a community. The University of Bern acts as coordinative maintainer.
GNU General Public License v3.0
12 stars 14 forks source link

Column not found: 1054 Unknown column 'overwrite_download_perm' in 'field list' when adding new publications #327

Closed rfcmaXi closed 1 month ago

rfcmaXi commented 1 month ago

Describe the bug If you try to add a new publication via the plugin options, the error appears.

To Reproduce Plugin-Settings -> Publications -> Add -> Make some entries and and save

Expected behavior The inputs should be saved ;)

Log PDOException thrown with message "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'overwrite_download_perm' in 'field list'"

Stacktrace:

19 PDOException in /srv/www/ilias/Services/Database/classes/PDO/class.ilDBPdo.php:451

18 PDO:exec in /srv/www/ilias/Services/Database/classes/PDO/class.ilDBPdo.php:451

17 ilDBPdo:insert in /srv/www/ilias/Services/ActiveRecord/Connector/class.arConnectorDB.php:183

16 arConnectorDB:create in /srv/www/ilias/Services/ActiveRecord/class.ActiveRecord.php:332

15 ActiveRecord:create in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/Conf/PublicationUsage/class.xoctPublicationUsageFormGUI.php:256

14 xoctPublicationUsageFormGUI:saveObject in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/Conf/PublicationUsage/class.xoctPublicationUsageGUI.php:229

13 xoctPublicationUsageGUI:update in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/class.xoctGUI.php:74

12 xoctGUI:performCommand in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/class.xoctGUI.php:68

11 xoctGUI:executeCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:203

10 ilCtrl:forwardCommand in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/class.xoctMainGUI.php:114

9 xoctMainGUI:executeCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:203

8 ilCtrl:forwardCommand in /srv/www/ilias/Customizing/global/plugins/Services/Repository/RepositoryObject/OpenCast/classes/class.ilOpenCastConfigGUI.php:75

7 ilOpenCastConfigGUI:executeCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:203

6 ilCtrl:forwardCommand in /srv/www/ilias/Services/Component/classes/Settings/class.ilObjComponentSettingsGUI.php:162

5 ilObjComponentSettingsGUI:forwardConfigGUI in /srv/www/ilias/Services/Component/classes/Settings/class.ilObjComponentSettingsGUI.php:119

4 ilObjComponentSettingsGUI:executeCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:203

3 ilCtrl:forwardCommand in /srv/www/ilias/Services/Administration/classes/class.ilAdministrationGUI.php:237

2 ilAdministrationGUI:executeCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:203

1 ilCtrl:forwardCommand in /srv/www/ilias/Services/UICore/classes/class.ilCtrl.php:178

0 ilCtrl:callBaseClass in /srv/www/ilias/ilias.php:24

Environment (please complete the following information):

rfcmaXi commented 1 month ago

Note: You can also simply edit an existing publication to throw the error.

An undefined database exception occurred. SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘overwrite_download_perm’ in ‘field list’ QUERY: UPDATE xoct_publication_usage SET usage_id = ‘download’, title = ‘Download Links’, display_name = ‘’, description = ‘Download links of processed videos in different resolutions for download button. ', group_id = NULL, channel = “api”, status = NULL, search_key = “tag”, flavour = “/delivery”, tag = “engage-download”, md_type = 2, allow_multiple = 1, mediatype = “”, overwrite_download_perm = 0, ext_dl_source = 1 WHERE usage_id = “download”

ferishili commented 1 month ago

This is because you went to the latest version without updating your plugin via CLI. To fix this you would need to perform update of the plugin via CLI from yout ILIAS root dir! e.g. (not sure if the command is correct) php setup/setup.php update --config=[the path to the conifg] --plugin=OpenCast

You would need to refer to the ILIAS docs for the update command!

rfcmaXi commented 1 month ago

Thank you for the relevant information!!! The need to run the CLI with DB steps for plugin changes is a bit surprising. However, I now understand where the approach or the necessity comes from and also that OC is the first plugin, of that we have in use, which makes use of the new modular option.

In this respect, I would at least like to give the hint to mention this in the readme :)

ferishili commented 1 month ago

I've tried to explain it here in Wiki but seems to be not enough!

chfsx commented 1 month ago

I'm thinking about whether we want to make the installation/update "cli only". e.g. check in the beforeInstall and beforeUpdate method whether PHP_SAPI === 'cli', and if not, issue an error message and point to the installation process on how to install or update the plugin.