我需要从我的数据库表中删除列 UserDomainName
clients
。
起初我安装了 doctrine/dbal
通过执行 composer require doctrine/dbal
然后是 composer update
,如 文档 中所述。
然后我创建了我想用来删除列的迁移:
php artisan make:migration remove_user_domain_name_from_clients --table=clients
我将 Schema::dropColumn('UserDomainName');
添加到 down()
方法中:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class RemoveDomainName extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('clients', function (Blueprint $table) {
//
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('clients', function (Blueprint $table) {
Schema::dropColumn('UserDomainName');
});
}
}
但是,我得到
Migrating: 2017_08_22_135145_remove_user_domain_name_from_clients
Migrated: 2017_08_22_135145_remove_user_domain_name_from_clients
执行后 php artisan migrate
但没有删除任何列。如果我再次执行它,我会得到 Nothing to migrate.
原文由 Black 发布,翻译遵循 CC BY-SA 4.0 许可协议
down
函数用于回滚,你必须添加这个dropColumn
在up
函数中,因为它正在运行你想要执行的迁移操作。所以,在你的
up
函数中应该有:在
down
函数中,您应该执行相反的操作,将列添加回来:这样,您始终可以返回到迁移中的任何一点。