从 laravel 编辑数据库列参数(修补程序)
Edit database column parameters from laravel (tinker)
所以我有带 table 的数据库,我需要在其中编辑一列,使其可为空,具体而言。我如何从 php artisan tinker 访问它,或者以某种方式在一个 table 上重新运行 迁移而不丢失它的数据?
使用 tinker,您无法修改架构 table。您需要像这样创建迁移:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AlterTableUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function ($table) {
$table->string('name', 50)->nullable()->default(null)->change();
});
}
}
在这种情况下,我们将名称设为可为空,默认值为 null。
更多信息:https://laravel.com/docs/master/migrations#modifying-columns
如果您想重新运行 迁移或添加改变现有 table 的新迁移取决于您是否在 生产 模式或发展模式。一般来说,在开发模式上重新 运行 迁移可能是最好的选择(由于虚拟数据)。另一方面;在生产模式下,如果数据很重要..我们通常会添加更新现有数据的新迁移table(因为数据可能对我们很重要..)
您可以 运行 建议的代码:
Schema::table('users', function ($table) {
$table->string('name', 50)->nullable()->default(null)->change();
});
直接来自 tinker
所以我有带 table 的数据库,我需要在其中编辑一列,使其可为空,具体而言。我如何从 php artisan tinker 访问它,或者以某种方式在一个 table 上重新运行 迁移而不丢失它的数据?
使用 tinker,您无法修改架构 table。您需要像这样创建迁移:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AlterTableUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function ($table) {
$table->string('name', 50)->nullable()->default(null)->change();
});
}
}
在这种情况下,我们将名称设为可为空,默认值为 null。
更多信息:https://laravel.com/docs/master/migrations#modifying-columns
如果您想重新运行 迁移或添加改变现有 table 的新迁移取决于您是否在 生产 模式或发展模式。一般来说,在开发模式上重新 运行 迁移可能是最好的选择(由于虚拟数据)。另一方面;在生产模式下,如果数据很重要..我们通常会添加更新现有数据的新迁移table(因为数据可能对我们很重要..)
您可以 运行 建议的代码:
Schema::table('users', function ($table) {
$table->string('name', 50)->nullable()->default(null)->change();
});
直接来自 tinker