在SQLite中,默认情况下禁用外键约束。
配置Laravel 5.1的SQLite数据库连接以启用外键约束的最佳方法是什么?我在['connections']['sqlite']
和/config/database.php
中看不到这样做的方法。
在SQLite中,默认情况下禁用外键约束。
配置Laravel 5.1的SQLite数据库连接以启用外键约束的最佳方法是什么?我在['connections']['sqlite']
和/config/database.php
中看不到这样做的方法。
5条答案
按热度按时间xoefb8l81#
下面是一个解决方案。在
App\Providers\AppServiceProvider
的boot()
方法中,添加:感谢@RobertTrzebinski为我们提供关于Laravel 4的this blog post信息。
jogvjijk2#
我在Laravel 5.2中使用App\Providers\AppServiceProvider中的外观数据库时产生了错误。以下是我的解决方案:
66bbxpm53#
因为我只想在我的测试中使用它,但是在所有的测试中,我最终在
Tests\TestCase
类中得到了一个简单的实现,如下所示:这就像一个魅力:-)
cdmah0mi4#
当测试实际上依赖于具有外键的表时,您还可以基于每个测试(文件)激活外键。
这里有一个特点:(例如
tests/ForeignKeys.php
)别忘了在你的测试设置链中的某个地方运行这个方法。(
tests/TestCase.php
)然后你可以像这样把它添加到你的测试中:
a1o7rhls5#
在较新版本的laravel中,特别是8.x和9.x,有一个配置选项可以打开SQLite数据库的外键约束。
config/database.php
在我的例子中,我只是没有为测试数据库设置该选项。