【发布时间】:2019-08-06 09:27:19
【问题描述】:
我对许多工厂进行了很多单元测试。但是由于外键的原因,我在每个测试中都需要更多的工厂。
是否可以在测试期间禁用外键?我尝试使用'foreign_key_constraints' => false,但没有效果。
'pgsql_testing' => [
'driver' => 'pgsql',
'host' => env('DB_HOST_TESTING', '127.0.0.1'),
'port' => env('DB_PORT_TESTING', '5432'),
'database' => env('DB_DATABASE_TESTING', 'forge'),
'username' => env('DB_USERNAME_TESTING', 'forge'),
'password' => env('DB_PASSWORD_TESTING', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
'foreign_key_constraints' => false, //does not help
],
我也尝试在 setUp 方法中使用 disableForeignKeyConstraints
protected function setUp() : void
{
parent::setUp();
Schema::connection('pgsql_testing')->disableForeignKeyConstraints();
}
我使用 PostgreSQL 10.7 和 Laravel 5.8
【问题讨论】:
标签: laravel postgresql testing laravel-5.8