Propel 1.6.9에서 실행 중이며 이전 노트북에서 적절한 파일을 생성하는 데 문제가 있으므로 이전 개발자가 최근에 파일을 업데이트했습니다. 무언가를 삭제하려고 할 때 한 가지 문제를 제외하고 모두 잘 진행되었습니다.무결성 제약 조건 위반으로 Propel을 삭제할 수 없습니다.
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`db000_app/file_meta`, CONSTRAINT `file_meta_FK_1` FOREIGN KEY (`case_id`) REFERENCES `agency_costs` (`id`))' in /var/www/vhosts/10/154462/webspace/httpdocs/domain/vendor/propel/propel1/runtime/lib/connection/DebugPDOStatement.php:90
Stack trace:
#0 /var/www/vhosts/10/154462/webspace/httpdocs/domain/vendor/propel/propel1/runtime/lib/connection/DebugPDOStatement.php(90): PDOStatement->execute(NULL)
#1 /var/www/vhosts/10/154462/webspace/httpdocs/domain/vendor/propel/propel1/runtime/lib/util/BasePeer.php(145): DebugPDOStatement->execute()
#2 /var/www/vhosts/10/154462/webspace/httpdocs/domain/vendor/propel/propel1/build/classes/onterechtbetaald/om/BaseAgencyCostsPeer.php(1085): BasePeer::doDelete(Object(AgencyCostsQuery), Object(DebugPDO))
#3 [internal function]: BaseAgencyCo in /var/www/vhosts/10/154462/webspace/httpdocs/domain/vendor/propel/propel1/runtime/lib/util/BasePeer.php on line 149
삭제 함수를 호출하는 코드 :
$case = AgencyCostsQuery::create()->findPk($_POST["DeleteId"]);
if ($case !== null)
{
$case->deleteFiles();
$case->delete();
}
으로는이 파일이 업데이트되기 전에 잘 작동했다. 데이터베이스가 변경되었습니다. agency_costs에 두 개의 열이 추가되었습니다.
이 오류를 극복하는 방법에 대한 아이디어가 있으십니까?
정확히 어떤 문제가 있을지 모르지만 삭제되는 하위 행이있는 동안 일부 상위 레코드가 삭제되는 것 같습니다. 어쩌면 당신의 관계를 확인해보십시오, 그 중 하나가 위반되고 있습니다 –
Propel의 삭제 기능도 관계를 처리하기로되어 있다고 생각합니다. 추가 된 테이블이 없으며 테이블에 두 개의 새로운 열만 추가되었습니다. 따라서 관계는 변경되지 않았습니다. – Casper