database - Laravel Framework 上的 removeColumn 和 dropColumn 方法有什么区别?

标签 database laravel database-migration

我需要从 Laravel 迁移的表中删除一列。

通常的代码是:

$table->dropColumn([ 'city', 'country' ]);

但是你必须安装 Doctrine DBAL 包才能使用 dropColumn() 方法。

寻找另一种解决方案,我找到了removeColumn() 方法(http://laravel.com/api/5.0/Illuminate/Database/Schema/Blueprint.html#method_removeColumn):

$table->removeColumn('city'); 
$table->removeColumn('country');

但是好像不行。它什么也不做,不会失败,并保留完整的列。

removeColumn 和 dropColumn 方法有什么区别?

removeColumn()方法的用途是什么?

最佳答案

removeColumn() 方法对于大多数迁移实际上毫无用处。它只是从蓝图中删除列,而不是实际上从数据库中删除。因此,如果您进行了此迁移:

Schema::create('foo', function (Blueprint $table) {
    $table->increments('id');
    $table->timestamps();

    $table->string('foo')->nullable();
    $table->string('bar');

    $table->removeColumn('foo');
});

创建的表将不包含 foo 列,因为它已从架构中删除。

关于database - Laravel Framework 上的 removeColumn 和 dropColumn 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256463/

相关文章:

grails - grails数据库迁移插件-如何有条件地插入行

sql-server - 管理更新多个数据库的迁移的最佳实践?

sql-server - 将数据从 DB2 迁移到 SQL Server - DB2 端需要什么?

MySQL Rank 并列

php - 我想将图像上传到 laravel 中的公共(public)文件夹和数据库,但我遇到了一些问题

laravel - RouteCollection.php 第 161 行 Laravel 5.3 中的 NotFoundHttpException

mysql - Laravel Eloquent 多个 AND/OR 语句

mysql - 如何从 Linux 机器连接到 Windows 上的远程 MYSQL 服务器?

database - 使用一个复杂的查询还是使用几个更简单的查询更好?

MySQL/ASP - 令人困惑的 SQL 查询