Commit 31da3a0b authored by Benjamin Morel's avatar Benjamin Morel

Support ForeignKeyConstraintViolationException in SQLite

parent 1a9812bd
...@@ -39,6 +39,10 @@ abstract class AbstractSQLiteDriver implements Driver, ExceptionConverterDriver ...@@ -39,6 +39,10 @@ abstract class AbstractSQLiteDriver implements Driver, ExceptionConverterDriver
return new Exception\UniqueConstraintViolationException($message, $exception); return new Exception\UniqueConstraintViolationException($message, $exception);
} }
if (strpos($exception->getMessage(), 'FOREIGN KEY constraint failed') !== false) {
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
}
if (strpos($exception->getMessage(), 'may not be NULL') !== false || if (strpos($exception->getMessage(), 'may not be NULL') !== false ||
strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false
) { ) {
......
...@@ -64,6 +64,9 @@ class AbstractSQLiteDriverTest extends AbstractDriverTest ...@@ -64,6 +64,9 @@ class AbstractSQLiteDriverTest extends AbstractDriverTest
[0, null, 'is not unique'], [0, null, 'is not unique'],
[0, null, 'are not unique'], [0, null, 'are not unique'],
], ],
self::EXCEPTION_FOREIGN_KEY_CONSTRAINT_VIOLATION => [
[0, null, 'FOREIGN KEY constraint failed']
],
self::EXCEPTION_LOCK_WAIT_TIMEOUT => [ self::EXCEPTION_LOCK_WAIT_TIMEOUT => [
[0, null, 'database is locked'], [0, null, 'database is locked'],
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment