Laravel의 Lumen 프레임 워크를 사용하여 백엔드 개발을 배우고 있으며 Laravel's documentation 다음에 데이터베이스 시드 클래스를 작성 중입니다. 아래 코드는 다음과 같습니다루멘 데이터베이스 시드 오류
모델 app\Photo.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Photo extends Model
{
protected $fillable = [
'link', 'category_id', 'date'
];
}
모델 공장 database\factories\ModelFactory.php
$factory->define(App\Photo::class, function (Faker\Generator $faker) {
return [
'link' => 'https://placehold.it/' . mt_rand(200, 400),
'category_id' => rand(1, 6),
'date' => date("Y-m-d", mt_rand(1263618000, 1481428800))
];
});
DatabaseSeeder
및 PhotoTableSeeder
클래스 이전
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call('PhotoTableSeeder');
}
}
class PhotoTableSeeder extends Seeder
{
public function run()
{
factory(App\Photo::class, 10)->create();
}
}
database\seeds\DatabaseSeeder.php
MySQL 데이터베이스에서 테이블 이름 photos
이고 시드 명령 php artisan db:seed
사용하여 완벽하게 작동합니다 :
시드 : PhotoTableSeeder
을하지만 photo
에 테이블 이름을 변경하고 같은 명령을 실행할 때, 이러한 오류가 발생했습니다 :
[Illuminate \ Database \ QueryException] SQLSTATE [42S02] : 기본 테이블 또는 뷰를 찾을 수 없음 : 1146 'homestead.photos'테이블이 존재하지 않습니다 (SQL :`photos` (`link`,`category_id`, 날짜 ') 값 (,, 3, 2012-05-28))는
[PDOException] SQLSTATE [42S02] 기본 테이블 또는 발견되지 전망 : 1,146 표 'homestead.photos는'
I가 존재하지 않는 돈 왜 오래된 테이블 이름이 여전히 호출되는지 알지 못합니다. 나는 그것이 어딘가에 저장되었거나 나는 뭔가를 놓친 것 같아, 나는 오류의 원인을 알아낼 수 없다.
그래서 지금까지 코드에서 [migrations'] (https : // lumen.laravel.com/docs/5.3/database#migrations)보기 .. 글쎄, 좀더 자세히 설명하기 위해, 테이블을 생성하는 데 사용되는 마이그레이션, 테이블에서 한 행을 나타내는 데 사용되는 모델, 시드를 작성하는 팩토리, 시드 , seed를 데이터베이스에 삽입하십시오. –
또한 laravel은 항상 테이블 이름이 모델의 복수 이름이라고 가정합니다. 사진과 같은 사진 .. '보호 된 $ 테이블'로 무시할 수 있습니다. –
'DB :: table ('photo')'을 사용하여 지정된 테이블을 선택하십시오. – solarhell