Foreign key Issue

I’m experiencing issues with foreign keys.

I’m publishing a new concrete CMS website. It works fine locally, but in production, the website renders correctly. However, when making any changes, it causes foreign key errors.

Example of errors:

Error

An exception occurred while executing 'INSERT INTO CollectionAttributeValues (cID, cvID, akID, avID) VALUES (?, ?, ?, ?)' with params [361, "1", 7, null]:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails ( myfoodli_myfoodli. CollectionAttributeValues, CONSTRAINT FK_BB9995FCB6561A7E FOREIGN KEY ( akID) REFERENCES attributekeys ( akID))

Details

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php(68): Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException->null

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(182): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(159): Doctrine\DBAL\DBALException->wrapException

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2226): Doctrine\DBAL\DBALException->driverExceptionDuringQuery

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(185): Doctrine\DBAL\Connection->handleExceptionDuringQuery

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php(18): Doctrine\DBAL\Driver\PDO\Exception->null

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(119): Doctrine\DBAL\Driver\PDO\Exception->new

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOException->null

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(179): Doctrine\DBAL\Driver\PDOStatement->execute

/home/myfoodli/public_html/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(226): Doctrine\DBAL\Statement->execute

/home/myfoodli/public_html/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(278): Doctrine\DBAL\Statement->executeStatement

/home/myfoodli/public_html/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(1145): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->executeInserts

/home/myfoodli/public_html/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(431): Doctrine\ORM\UnitOfWork->executeInserts

/home/myfoodli/public_html/concrete/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(403): Doctrine\ORM\UnitOfWork->commit

/home/myfoodli/public_html/concrete/src/Attribute/ObjectTrait.php(93): Doctrine\ORM\EntityManager->flush

/home/myfoodli/public_html/concrete/src/Page/Collection/Collection.php(455): Concrete\Core\Page\Collection\Version\Version->setAttribute

/home/myfoodli/public_html/concrete/controllers/panel/detail/page/attributes.php(135): Concrete\Core\Page\Collection\Collection->setAttribute

/home/myfoodli/public_html/concrete/src/Controller/AbstractController.php(318): Concrete\Controller\Panel\Detail\Page\Attributes->submit

/home/myfoodli/public_html/concrete/src/Controller/AbstractController.php(318): null->call_user_func_array

/home/myfoodli/public_html/concrete/src/Routing/ControllerRouteAction.php(64): Concrete\Core\Controller\AbstractController->runAction

/home/myfoodli/public_html/concrete/src/Http/RouteDispatcher.php(37): Concrete\Core\Routing\ControllerRouteAction->execute

/home/myfoodli/public_html/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\RouteDispatcher->dispatch

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\DispatcherDelegate->next

/home/myfoodli/public_html/concrete/src/Http/DefaultDispatcher.php(127): Concrete\Core\Http\Middleware\MiddlewareStack->process

/home/myfoodli/public_html/concrete/src/Http/DefaultDispatcher.php(60): Concrete\Core\Http\DefaultDispatcher->handleDispatch

/home/myfoodli/public_html/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch

/home/myfoodli/public_html/concrete/src/Http/Middleware/FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\DispatcherDelegate->next

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process

/home/myfoodli/public_html/concrete/src/Http/Middleware/StrictTransportSecurityMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware->process

/home/myfoodli/public_html/concrete/src/Http/Middleware/ContentSecurityPolicyMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware->process

/home/myfoodli/public_html/concrete/src/Http/Middleware/CookieMiddleware.php(35): Concrete\Core\Http\Middleware\MiddlewareDelegate->next

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\CookieMiddleware->process

/home/myfoodli/public_html/concrete/src/Http/Middleware/ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ApplicationMiddleware->process

/home/myfoodli/public_html/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next

/home/myfoodli/public_html/concrete/src/Http/DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process

/home/myfoodli/public_html/concrete/src/Foundation/Runtime/Run/DefaultRunner.php(128): Concrete\Core\Http\DefaultServer->handleRequest

/home/myfoodli/public_html/concrete/src/Foundation/Runtime/DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run

/home/myfoodli/public_html/concrete/dispatcher.php(45): Concrete\Core\Foundation\Runtime\DefaultRuntime->ru

An exception occurred while executing 'INSERT INTO ExpressEntityEntries (exEntryDisplayOrder, exEntryDateCreated, exEntryDateModified, publicIdentifier, resultsNodeID, uID, exEntryEntityID) VALUES (?, ?, ?, ?, ?, ?, ?)' with params [0, "2024-04-30 11:53:56", "2024-04-30 11:53:56", "66304f34bdb6e311059576", "126", null, "b93ab6c6-e0e5-11ee-98cc-ad5ecff55ceb"]: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (myfoodli_myfoodli.ExpressEntityEntries, CONSTRAINT FK_B8AE3531AFC87D03 FOREIGN KEY (exEntryEntityID) REFERENCES expressentities (id))

Has anyone had this problem before, I couldn’t find a solution on the forum.

Thanks

If your local machine is a windows machine then it is likely that you have some table names all in lowercase when they should be camel cased.
Example: attributekeys should be named AttributeKeys

1 Like