2

我正在尝试在 Laravel 5 安装附带的通用“用户”表中添加一些新列。

但是,我创建了一个执行 Schema::create 的新迁移,如下所示:

Schema::create('users', function(Blueprint $table)
{
    $table->increments('id');
    $table->string('username');
    $table->string('email')->unique();
    $table->string('password', 60);
    $table->string('avatar');
    $table->string('first_name');
    $table->string('last_name');
    $table->string('nickname');
    $table->rememberToken();
    $table->timestamps();
});

在上面我添加了avatarfirst_namelast_namenickname

我的问题是当我跑步时php artisan migrate它告诉我Nothing to migrate.

如何创建“更新”迁移?

4

3 回答 3

6

来自http://laravel.com/docs/5.1/migrations#creating-columns

创建列

要更新现有表,我们将使用tableSchema 外观上的方法。与该create方法一样,该table方法接受两个参数:表的名称和接收蓝图实例的闭包,我们可以使用该实例向表中添加列:

Schema::table('users', function ($table) {
    $table->string('email');
});

另请参阅 http://laravel.com/docs/5.1/migrations#creating-columns

Rollback / Migrate In Single Command注意:使用此方法您将丢失数据库中的所有数据

migrate:refresh 命令将首先回滚所有数据库迁移,然后运行 ​​migrate 命令。此命令有效地重新创建整个数据库:

php artisan migrate:refresh
于 2015-06-17T12:36:43.973 回答
1

您还可以从特定迁移的迁移表中删除迁移行(用户迁移通常是一批 1)。然后再次运行 php artisan migrate。

每个迁移都存储在迁移表中(检查您的数据库),因此要重新创建表,您需要在迁移表中删除该表(用户)的迁移记录

于 2015-08-26T11:46:33.487 回答
-1

一般流程:

我已经失去了 6 个小时来解决您面临的同样问题,但现在它就像是一种食物。

第 1 步:先决条件:

在修改列之前,请务必将教义/dbal 依赖项添加到您的 composer.json 文件中。Doctrine DBAL 库用于确定列的当前状态并创建对列进行指定调整所需的 SQL 查询

第 2 步:创建列:

Schema 门面上的 table 方法可以用来更新现有的表。与 create 方法一样,table 方法接受两个参数:表的名称和接收可用于向表添加列的蓝图实例的闭包:

   Schema::table('users', function (Blueprint $table) {
   $table->string('email');
   });

第 3 步(如果需要):

在控制台中使用以下命令

php artisan migrate:refresh
于 2017-06-27T18:17:32.687 回答