Solución:
No, esta es la forma en que funciona su base de datos. No puede truncar la tabla a la que hace referencia alguna otra tabla. Puedes hacer algo como
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
para deshabilitar las comprobaciones de claves foráneas, trunque las tablas y habilítelas de nuevo.
Si prefiere utilizar objetos elocuentes, la respuesta de Maksym de la manera “elocuente”
use IlluminateSupportFacadesSchema;
use AppModelsDatapoint;
use AppModelsSensor;
Schema::disableForeignKeyConstraints();
Datapoint::truncate();
Sensor::truncate();
Schema::enableForeignKeyConstraints();
En Laravel 7, para compatibilidad entre 4 bases de datos (MySql, Postgres, SQLite y Servidor SQL) y no Eloquent, puedes usar:
Schema::disableForeignKeyConstraints();
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
Schema::enableForeignKeyConstraints();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)