Laravel迁移 - 一次性迁移多个迁移(文件)

Jef*_*ffz 11 php migration laravel

说,我有多个迁移文件更新单个表.

例如

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

如何应对如上所述的情况?

编辑

这是代码:

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');
    }
}

Joe*_*inz 11

每次迁移都必须具有唯一的类名.将第二个重命名为更合理的东西,例如2016_03_20_075467_add_task2_to_tasks_tableAddTask2ToTasksTable,然后运行composer dump-autoload以使Laravel找到变化.现在你可以迁移了.

编辑:既然已将两个迁移的代码编辑到问题中,我可以看到第一个迁移具有相同的问题,并且应该以相同的方式重命名.有时候可能会有一个初始的创建迁移.您应该停止将编辑迁移命名为create,因为您实际上并未创建表.

  • 迁移文件由Laravel自动创建.由于存在创建快捷方式,Laravel是否难以在类名中添加一些随机字符串/哈希?除非有一些东西对这个程序尖叫.谢谢乔尔的时间. (2认同)