Сеялка Laravel не работает на клонированном хранилище
Заполнение базы данных с использованием фабрик моделей laravel прекрасно работает с моим локальным (оригинальным) файлом проекта repo/laravel, но когда я клонирую удаленный из github, seeding выдает такую ошибку:
Столбец не найден: 1054 Неизвестный столбец "hr" в "списке полей" (SQL: вставить в
categories
(slug
,hr
,de
,updated_at
,created_at
) v alues (КАТЕГОРИЯ-1, Название для категории-1 по языку HR, Название для категории-1 по языку, 2018-07-09 11:19:45, 2018-07-09 11:19:4 5))
Миграции работают без проблем, как на локальном, так и на клонированном репо, я использую пакет Laravel Transhable. Поля hr и de являются локалями
Я пытался нажать на удаленный, но он говорит, что все в порядке, я также пытался вручную скопировать сеялку и фабрику из локальной в удаленную / клонированную папку, но она все еще не работает.
(следующие файлы идентичны на оригинальном и клонированном репо)
База данных сеялки:
public function run()
{
$this->call([
LanguagesTableSeeder::class, //works
CategoriesTableSeeder::class, //error
MealsTableSeeder::class //error
]);
}
Категория сеялки:
public function run()
{
factory(App\Category::class, 5)->create();
}
Категория фабрика:
use Faker\Generator as Faker;
использовать приложение \ язык;
$factory->define(App\Category::class, function (Faker $faker) {
static $counter = 1;
$locales = Language::pluck('lang');
$data = array('slug' => 'CATEGORY-'.$counter);
foreach ($locales as $locale) {
$data[$locale] = [
'title' => 'Title for category-' .$counter. ' on '. $locale . ' language'
];
}
$counter++;
return $data;
});
Обновить:
LanguageTableSeeder:
public function run()
{
if(!App\Language::count()) {
$defaultLanguages = array('hr','en','de');
foreach ($defaultLanguages as $language) {
App\Language::create([
'lang' => $language
]);
}
}
}
Категории миграции:
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('slug');
$table->timestamps();
});
Schema::create('category_translations', function (Blueprint $table) {
$table->increments('id');
$table->integer('category_id')->unsigned();
$table->string('locale')->index();
$table->string('title');
$table->unique(['category_id','locale']);
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
}
1 ответ
Хорошо, так что после нескольких часов или пробуя все, я вроде нашел решение.
Что-то не так с каталогом поставщика в клонированном репозитории.
Когда я удалил vendor из.gitignore, он внезапно начал работать, вместо того, чтобы использовать composer install для создания vendor в клоне, я просто загрузил полностью оригинального vendor в github.