我使用的是Laravel 5.6,来自Symfony开发和Doctrine ORM。
将字段添加到表的方法是什么?我想向用户表添加一些字段。所以我创建了一个迁移:
php artisan make:migration add_data_users --table=users
然后我在迁移中添加了字段。但是当我尝试迁移时,出现此错误:
基本表或视图已存在:1050表“权限”已存在
该表已被迁移,但是迁移似乎可以重建所有模式(?!)。在Symfony中,我仅向实体添加字段,在这里,我是否必须创建迁移?然后,如何仅应用新迁移?我试图将迁移的名称添加到命令中,但是它不起作用。
编辑
似乎我有2个关于 permissions 表的迁移,仔细看一下您的迁移,我删除了第二个迁移文件,就可以了。
答案 0 :(得分:-2)
您应该创建新的迁移,例如:
php artisan make:migration update_users_table
UpdateUsersTable.php //您的新迁移
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class UpdateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('name', 36)->nullable()->default(null);
});
}
注意:请针对特定表运行迁移
在migrations文件夹中创建测试文件夹之后,新创建的迁移已移动/复制到test文件夹中,并在终端/ cmd中运行以下命令,如:
php artisan migrate --path=database/migrations/test/