我不知道如何使用Laravel框架向现有的数据库表中添加新列。
我试图编辑迁移文件使用…
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
在终端中,我执行了php artisan migrate:install和migrate。
如何添加新列?
我不知道如何使用Laravel框架向现有的数据库表中添加新列。
我试图编辑迁移文件使用…
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
在终端中,我执行了php artisan migrate:install和migrate。
如何添加新列?
当前回答
向迁移文件中添加列并运行此命令。
php artisan migrate:refresh --path=/database/migrations/your_file_name.php
其他回答
步骤1
php artisan make:migration add_sex_to_users_table --table=users
步骤2
在新生成的迁移文件中,您将发现up和down钩子方法。在上勾中,添加你想要添加的列,在下勾中,添加你需要删除的列。例如,我需要在用户列上添加性,所以我将在向上钩添加下面的行。
$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
然后您将添加一个新列
如果您正在使用Laravel 5,命令将是;
php artisan make:migration add_paid_to_users
所有用于制作东西的命令(控制器、模型、迁移等)都被移动到make:命令下。
PHP工匠迁移仍然是一样的。
首先回滚之前的迁移
php artisan migrate:rollback
之后,您可以修改现有的迁移文件(添加新列、重命名列或删除列),然后重新运行迁移文件
php artisan migrate
Laravel 7
使用cli命令创建迁移文件: PHP工匠使:迁移add_paid_to_users_table——table=用户 将在migrations文件夹中创建一个文件,在编辑器中打开它。 添加到函数up():
Schema::table('users', function (Blueprint $table) {
// Create new column
// You probably want to make the new column nullable
$table->integer('paid')->nullable()->after('status');
}
添加到函数down()中,它将在迁移由于某些原因失败时运行: 表- > dropColumn(“支付”); 使用cli命令执行migration: PHP工匠迁移
如果你想在表中添加一个列来创建一个外键约束:
在上述过程的第3步中,您将使用以下代码:
$table->bigInteger('address_id')->unsigned()->nullable()->after('tel_number');
$table->foreign('address_id')->references('id')->on('addresses')->onDelete('SET NULL');
在上述过程的第4步中,您将使用以下代码:
// 1. Drop foreign key constraints
$table->dropForeign(['address_id']);
// 2. Drop the column
$table->dropColumn('address_id');
你可以像这样在初始的Schema::create方法中添加新列:
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
如果您已经创建了一个表,您可以通过创建一个新的迁移并使用Schema::table方法向该表添加额外的列:
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});
关于这一点,文档相当详尽,从版本3到版本4没有太大的变化。