Я делаю свой первый проект laravel. Я создал две таблицы в моей базе данных и попытался засеять данные в каждой таблице. Данные для первой таблицы (проектов) были вставлены как ожидалось, но не было данных был вставлен во вторую таблицу (задачи). И когда я запустил php artisan db:seed command
, я получаю следующую ошибку.ошибка при посеве в базе данных в laravel
«нарушение ограничения целостности: 1062 Дублированный запись„1“для ключа ПЕРВИЧНОГО
Что может быть причиной и как я могу решить эту проблему
Вот мой расширенный класс миграции
?public function up()
{
//
Schema::create('projects', function(Blueprint $table)
{
$table->increments('id');
$table->string('name')->default('');
$table->string('slug')->default('');
$table->timestamps();
});
Schema::create('tasks', function(Blueprint $table) {
$table->increments('id');
// $table->integer('project_id')->unsigned()->default(0);
$table->foreign('project_id')->references('id')->on('projects')->onDelete('cascade');
$table->string('name')->default('');
$table->string('slug')->default('');
$table->boolean('completed')->default(false);
$table->text('description')->default('');
$table->timestamps();
});
}
класс сеялка для проектов таблицы
class projectSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$projects = array(
['id' => 1, 'name' => 'Project 1', 'slug' => 'project-1', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 2, 'name' => 'Project 2', 'slug' => 'project-2', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 3, 'name' => 'Project 3', 'slug' => 'project-3', 'created_at' => new DateTime, 'updated_at' => new DateTime]
);
// Uncomment the below to run the seeder
DB::table('projects')->insert($projects);
}
}
для задач стол:
public function run()
{
//
$tasks = array(
['id' => 1, 'name' => 'Task 1', 'slug' => 'task-1', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 2, 'name' => 'Task 2', 'slug' => 'task-2', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 3, 'name' => 'Task 3', 'slug' => 'task-3', 'project_id' => 1, 'completed' => false, 'description' => 'My first task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 4, 'name' => 'Task 4', 'slug' => 'task-4', 'project_id' => 1, 'completed' => true, 'description' => 'My second task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 5, 'name' => 'Task 5', 'slug' => 'task-5', 'project_id' => 1, 'completed' => true, 'description' => 'My third task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 6, 'name' => 'Task 6', 'slug' => 'task-6', 'project_id' => 2, 'completed' => true, 'description' => 'My fourth task', 'created_at' => new DateTime, 'updated_at' => new DateTime],
['id' => 7, 'name' => 'Task 7', 'slug' => 'task-7', 'project_id' => 2, 'completed' => false, 'description' => 'My fifth task', 'created_at' => new DateTime, 'updated_at' => new DateTime]
);
//// Uncomment the below to run the seeder
DB::table('tasks')->insert($tasks);
}
}
Как выглядят ваши миграции для двух таблиц? – Bogdan
расширенный класс миграции добавлен в сообщение. –
Вы впервые запустили скрипт? проверить таблицу в базе данных. – Naumov