Laravel:在DDBB上添加新列而不删除数据

时间:2017-11-03 15:53:17

标签: php mysql laravel

我有这个迁移:

public function up()
    {
        Schema::create('clients', function(Blueprint $table)
        {
            $table->increments('id');
            $table->string('name');
            $table->string('slug');
            $table->timestamps();
        });
    }

现在我想添加一个新列,看起来像这样:

public function up()
        {
            Schema::create('clients', function(Blueprint $table)
            {
                $table->increments('id');
                $table->string('name');
                $table->string('slug');
                $table->string('pathlogo')->default('/');
                $table->timestamps();
            });
        }

如何在Laravel上创建一个“添加列”?我不想做php artisan migrate:刷新,或重新启动然后重新制作种子。

现在我在DB中有一些不存在于种子中的数据我只想创建一个新列。

2 个答案:

答案 0 :(得分:2)

您需要将Schema::create更改为Schema::table(因为您没有创建表格,只是选择它),然后您在该函数中的唯一行应该是:

$table->string('pathlogo')->default('/')->after('slug');

after将确保按照您的意愿定位列。

如果你还在开发中,即。如果您没有表中的数据,则应该回滚所有迁移并编辑原始数据。

答案 1 :(得分:0)

创建一个新的迁移并将其用作您的向上功能:

export class Vector3 implements Vector {
constructor(x?: number, y?: number, z?: number);

x: number;
y: number;
z: number;
clone(): this;

他们正常迁移。