Композитор и проблема миграции, нужно руководство, чтобы исправить это - PullRequest
0 голосов
/ 24 октября 2019

Извините за заголовок вопроса, не уверен, что упомянуть.

У меня есть ситуация, у меня была таблица translations, но кое-как я должен был установить пакет voyager. В этом пакете также есть миграция для translations таблицы. Я попытался найти способ изменить имя таблицы, но мне не удалось, а затем я решил переименовать свою собственную таблицу translations. Итак, я сделал это, создав миграцию, как вы можете видеть следующим образом

public function up()
{
    Schema::rename("translations", "new_translations");
}

public function down()
{
    Schema::rename("new_translations", "translations");
}

Теперь, когда я пытаюсь выполнить php artisan migrate:rollback, возвращается ошибка

Cannot declare class
 CreateTranslationsTable, because the name is already in use

  at F:\xampp\htdocs\project-name\database\migrations\2019_09_19_094436_create_tran
slations_table.php:40
    36|
    37|              Schema::dropIfExists('translations');
    39|     }
  > 40| }

Может ли кто-нибудь помочь мнемогу ли я решить проблему, я был бы очень признателен.

1 Ответ

0 голосов
/ 24 октября 2019

Я думаю, что проблема не в реальной миграции (хотя вам необходимо изменить имя таблицы), а скорее в том, что касается имени файла и имени класса, как указано в комментариях navok.

Если вы найдете свой собственный переход внутри папки database/migrations и переименуете ее с xxxxxx_xxxxxx_create_translations_table.php на что-то вроде xxxxx_xxxxxx_create_new_translations_table.php, а затем внутри этого файла измените имя класса с CreateTranslationsTable на CreateNewTranslationsTable и повторнозапустите миграцию.

Похоже, что миграция внутри установленного вами пакета также имеет имя класса CreateTranslationsTable, поэтому самый простой вариант - изменить собственное имя.

Единственная проблема с этим, вам придется запустить новую миграцию.

php artian migrate:fresh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...