Скажем, у меня есть несколько файлов миграции, обновляющих одну таблицу.Laravel migrate - несколько миграций (файлов) за один раз
например.
2016_03_20_072730_create_tasks_table.php 2016_03_20_075467_create_tasks_table.php
... который пришел с репо разными членами команды. Каждый настраивает что-либо в таблице, например. добавление столбца.
Когда я пытаюсь:
php artisan migrate
Я получаю сообщение об ошибке:
PHP Fatal error: Cannot declare class CreateTasksTable, because the name is eady in use in U:\www\b10\database\migrations\2016_03_20_072737_create_tasks_ le.php on line 30 [Symfony\Component\Debug\Exception\FatalErrorException] Cannot declare class CreateTasksTable, because the name is already in use
Как следует одна сделка с ситуацией, как описано выше?
EDIT
Вот код:
2016_03_20_072730_create_tasks_table.php:
class CreateTasksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task1'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('tasks'); } }
2016_03_20_075467_create_tasks_table.php:
class CreateTasksTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task2'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('tasks'); } }
Да, я пришел к такому же выводу из-за ошибки, но миграция должна была быть намного больше, чем выполнение БД вручную. Предположительно вы должны просто получить последнее репо, запустить мигрировать и пиво. Но с этим, похоже, что обходные обновления не так уж далеки от этой «супер-лучшей вещи, поскольку нарезанный хлеб»;) Теперь вам нужно либо настроить файл миграции, объединить файлы миграции, либо переместить их в темп и использовать - -path и т. д. Итак, я думаю, это лимон. Говорит Лоца, маленькая ручка. Если есть простой способ - отсюда мой вопрос. – Jeffz
Это легко - вы просто должны логически назвать свои миграции. Вам не нужно ничего делать в базе данных. Скажем так: работать с моделями очень просто. Но если вы попробуете назвать две модели одинаково, это не сработает. Не могли бы вы утверждать, что с моделями сложно работать? :) Просто научите членов вашей команды давать разные имена для разных миграций, и это буквально все, что вам нужно. –
Файлы миграции автоматически создаются Laravel. Так как есть ярлык создания, было бы так сложно, чтобы Laravel добавил случайную строку/хэш к имени класса? Если только что-то кричит против этой процедуры. Спасибо, Джоэл, за твое время. – Jeffz