假设我有多个迁移文件来更新单个表,例如:
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 already in use in U:\www\b10\database\migrations\2016_03_20_072737_create_tasks_table.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 { /** * 运行迁移。 * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task1'); }); }
/** * 回滚迁移。 * * @return void */ public function down() { Schema::drop('tasks'); } }
2016_03_20_075467_create_tasks_table.php:
class CreateTasksTable extends Migration { /** * 运行迁移。 * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task2'); }); }
/** * 回滚迁移。 * * @return void */ public function down() { Schema::drop('tasks'); } }
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 already in use in U:\www\b10\database\migrations\2016_03_20_072737_create_tasks_table.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 { /** * 运行迁移。 * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task1'); }); }
/** * 回滚迁移。 * * @return void */ public function down() { Schema::drop('tasks'); } }
2016_03_20_075467_create_tasks_table.php:
class CreateTasksTable extends Migration { /** * 运行迁移。 * * @return void */ public function up() { Schema::table('tasks', function ($table) { $table->string('task2'); }); }
/** * 回滚迁移。 * * @return void */ public function down() { Schema::drop('tasks'); } }
php artisan make:migration create_tablename --create=tablename
;对于表编辑迁移,我使用php artisan make:migration add_fieldname_to_tablename --table=tablename
。根据我的需求,可能会使用 edit/delete/drop 等命令,而不是 add。这样,你就能确保不会出现重复项,除非你意外地尝试向数据库添加重复字段或表,但即使这样也不会起作用。希望能有所帮助。 :) - Joel Hinz