Я пытаюсь выполнить миграцию в Laravel 4, но я продолжаю получать следующую ошибку:
[Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ramen.categories ' doesn't exist (SQL: create table `categories` (`id` int unsigned not null auto_increment primary key) default character set utf8 collate utf8_unicode_ci)
Как ни странно, если я изменил имя таблицы из «категорий» на «категоризацию», миграция выполняется успешно.
Это команда, которую я использовал для создания миграции:
php artisan migrate:make create_categories_table --table=categories --create=categories
И это фактический файл миграции:
используйте Illuminate \ Database \ Schema \ Blueprint;
используйте Illuminate \ Database \ Migrations \ Migration;
класс CreateCategoriesTable расширяет миграцию {
/** * Run the migrations. * * @return void */ public function up() { Schema::create('categories', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); $table->integer('parent')->unsigned(); $table->string('category_type'); $table->string('name'); $table->string('type'); $table->index('type'); $table->index('parent'); $table->index('name'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('categories'); }
}
Опять же, я получаю ошибку, если я запустил эту миграцию, но если я просто изменил «категории» на «категоризацию», миграция выполняется успешно.
Раньше у меня была таблица со списками, которую я не настроил с помощью миграции. Я уронил эту таблицу. У меня также был файл модели категорий, который я удалил. Я сбросил все таблицы базы данных и перезапустил все миграции и попытался запустить composer dump-autoload
(хотя я не уверен, что это могло бы иметь какое-либо отношение к этой проблеме).
Почему я получаю эту ошибку «table not found» при попытке создать таблицу категорий?
Я проверил этот поток, который похож на мою проблему, но не помог мне решить эту ошибку: Laravel 4 migrate base table not found
Оказывается, это была проблема с MYSQL, а не с Laravel. Я попытался создать таблицу «категорий» непосредственно в PHP MyAdmin и не смог этого сделать.
Создание таблицы с произвольным именем, переименование этой таблицы в «категории», а затем удаление этой таблицы, похоже, устранило проблему. Впоследствии я смог успешно выполнить миграцию.