Unable to re-create person
Describe the bug
Unable to re-create a person as avatar is retained.
Steps to reproduce
- Create a person
test
, giving them an avatar - Delete the person
- Create person
test
again, giving them avatar.
2a. Observe, that avatar is retained under MEDIA_PATH/persons/test.jpg
and in cp_media
table.
Expected behavior
Person created.
Actual behavior
50x upon updating cp_persons
table.
Relevant logs and/or screenshots
mysqli_sql_exception: Cannot add or update a child row: a foreign key constraint fails (`castopod`.`cp_persons`, CONSTRAINT `cp_persons_avatar_id_foreign` FOREIGN KEY (`avatar_id`) REFERENCES `cp_media` (`id`) ON DELETE SET NULL) in /var/www/castopod/vendor/codeigniter4/framework/system/Database/MySQLi/Connection.php:306
Stack trace:
#0 /var/www/castopod/vendor/codeigniter4/framework/system/Database/MySQLi/Connection.php(306): mysqli->query()
#1 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseConnection.php(693): CodeIgniter\Database\MySQLi\Connection->execute()
#2 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseConnection.php(607): CodeIgniter\Database\BaseConnection->simpleQuery()
#3 /var/www/castopod/vendor/codeigniter4/framework/system/Database/BaseBuilder.php(2308): CodeIgniter\Database\BaseConnection->query()
#4 /var/www/castopod/vendor/codeigniter4/framework/system/Model.php(319): CodeIgniter\Database\BaseBuilder->insert()
#5 /var/www/castopod/vendor/codeigniter4/framework/system/BaseModel.php(788): CodeIgniter\Model->doInsert()
#6 /var/www/castopod/vendor/codeigniter4/framework/system/Model.php(715): CodeIgniter\BaseModel->insert()
#7 /var/www/castopod/modules/Admin/Controllers/PersonController.php(91): CodeIgniter\Model->insert()
#8 /var/www/castopod/modules/Admin/Controllers/PersonController.php(25): Modules\Admin\Controllers\PersonController->attemptCreate()
#9 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(941): Modules\Admin\Controllers\PersonController->_remap()
#10 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(502): CodeIgniter\CodeIgniter->runController()
#11 /var/www/castopod/vendor/codeigniter4/framework/system/CodeIgniter.php(361): CodeIgniter\CodeIgniter->handleRequest()
#12 /var/www/castopod/public/index.php(85): CodeIgniter\CodeIgniter->run()
#13 {main}
Context
- Castopod: 1.7.3
- OS: Debian 11
- Browser: Firefox 121
- Web server: NGINX
- Yunohost 11.2.8 with Castopod 1.7.3~ynh2
Possible fixes
Manually removing entry from cp_media
and removing the file from FS fixes the problem.
Edited by orhtej2