J'ai rétrogradé mon projet de Laravel. 7 à 8 . mais le problème est que lorsque je lance la commande d'ensemencement php artisan db:seed il affiche une erreur SQLSTATE [23000] : Violation de la contrainte d'intégrité : . c'est parce qu'il ensemence les données d'ensemencement précédentes que j'exécute avant. J'ai aussi fait avant de lancer la commande d'ensemencement
-
Ajouter une base de données \Seeders espace de nom en haut de DatabaseSeeder.php et des autres fichiers Seeder
-
Remplacer le nom du dossier "seeds" par "seeders" situé à l'adresse suivante \database\ dossier
-
Mettez à jour composer.json comme ci-dessous :
"autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" }
},
-
Enfin, exécutez les commandes suivantes
compositeur dump-autoload
php artisan db:seed
J'ai également modifié le Base de donnéesSeeder commande $this->call(DeliveryAddressTableSeeder::class) ;
DeliveryAddressTableSeeder
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\DeliveryAddress;
class DeliveryAddressTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$deliveryRecords = [
['id' => 1, 'user_id' => 1, 'name' => '***', 'address' => 'Test 123', 'city' => '*******', 'country' => '******', 'pincode' => '*****', 'mobile' => '**********', 'status' => 1],
];
DeliveryAddress::insert($deliveryRecords);
}
}