Laravel 在迁移中向现有表添加新列

新手上路,请多包涵

我不知道如何使用 Laravel 框架向现有数据库表中添加新列。

我尝试使用…编辑迁移文件

<?php

public function up()
{
    Schema::create('users', function ($table) {
        $table->integer("paid");
    });
}

在终端中,我执行 php artisan migrate:installmigrate

如何添加新列?

原文由 kim larsen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 318
2 个回答

要创建迁移,您可以使用 Artisan CLI 上的 migrate:make 命令。使用特定名称以避免与现有模型冲突

对于 Laravel 5+:

 php artisan make:migration add_paid_to_users_table --table=users

对于 Laravel 3:

 php artisan migrate:make add_paid_to_users

然后,您需要使用 Schema::table() 方法(因为您正在访问现有表,而不是创建新表)。您可以添加这样的列:

 public function up()
{
    Schema::table('users', function($table) {
        $table->integer('paid');
    });
}

并且不要忘记添加回滚选项:

 public function down()
{
    Schema::table('users', function($table) {
        $table->dropColumn('paid');
    });
}

然后你可以运行你的迁移:

 php artisan migrate

这在 Laravel 4 / Laravel 5 的文档中都有很好的介绍:

对于 Laravel 3:

编辑:

使用 $table->integer('paid')->after('whichever_column'); 在特定列之后添加此字段。

原文由 Phill Sparks 发布,翻译遵循 CC BY-SA 4.0 许可协议

步骤1

 php artisan make:migration add_sex_to_users_table --table=users

第2步

在新生成的迁移文件中,你会发现 up 和 down 钩子方法。在上钩中,添加要添加的列,在下钩中,添加需要删除的列。例如,我需要在用户列上添加性别,所以我将在 up 挂钩中添加以下行。

 $table->integer('quantity')->default(1)->nullable();

所以我有这样的东西

public function up()
{
    Schema::table('service_subscriptions', function (Blueprint $table) {
        $table->integer('quantity')->default(1)->nullable();
    });
}

第 3 步

运行迁移命令如下

php artisan migrate

然后您将添加一个新列

晚点再谢我!

原文由 MUHINDO 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题