#php #laravel
Вопрос:
Я использую mysql в своей среде laravel и использую sqlite в качестве базы данных .env.testing
. Я мог бы легко запустить php artisan migrate:fresh --seed
laravel, но если я запущу php artisan migrate:fresh --seed --env=testing
, я получу ошибку:
SQLSTATE[HY000]: General error: 1 ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint
И моя эта конкретная сеялка, где она выдает ошибку, выглядит так:
<?php
namespace DatabaseSeeders;
use AppModelsPermission;
use IlluminateDatabaseSeeder;
class PermissionsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Permission::upsert([
/**
* User Model Related Permissions 1-4
*/
[
'name' => 'user-view',
'label' => 'User View',
'description' => 'Allows to view users',
'created_at' => now(),
'updated_at' => now()
],
[
'name' => 'user-create',
'label' => 'User Create',
'description' => 'Allows to create user',
'created_at' => now(),
'updated_at' => now()
],
[
'name' => 'user-update',
'label' => 'User Update',
'description' => 'Allows to update user',
'created_at' => now(),
'updated_at' => now()
],
[
'name' => 'user-destroy',
'label' => 'User Destroy',
'description' => 'Allows to destroy user',
'created_at' => now(),
'updated_at' => now()
],
], ['name'], ['label','description','updated_at']);
}
}
Этот же код работает в среде .env, но не в .env.testing
среде, но, как я уже упоминал .env
, использует mysql, где as .env.testing
использует sqlite