Laravel 5.2如何在不丢失数据的情况下更新迁移

2021/01/31 03:41 · php ·  · 0评论

我使用的是laravel 5.2,通常会根据项目要求更新数据库,因此我希望这样做不会丢失数据库记录。我不是说如何播种数据库。我的意思是当我的数据库处于活动状态并且想要对其进行更新时,会引发laravel迁移。我本打算扔Laravel Documentation,但是什么也没找到,所以我希望找到有人帮助我

由于表中已经有数据,因此您可以创建新的迁移文件来更新表,而不必回滚迁移(这会导致现有数据丢失)。假设您有一个users带有列的表name, email, password您将数据存储在该表中。然后您意识到您还确实需要添加一个新列命名mobile_no为users表。为此,您需要创建一个新的迁移文件。命令将是:

php artisan make:migration add_mobile_no_columns_to_users_table --table=users

这样,将创建一个新的迁移文件。在此处设置您的列详细信息,使用即可运行迁移php artisan migrate,仅此而已。您将在users表中拥有此新列,而不会丢失以前存储的数据。

请注意,如果在已经有数据的情况下为表添加新列,则必须为新列设置默认值或将其设置为可为null的类型。否则,将导致错误

确保在表中添加新列时,该列应为可空值,并且不应唯一。否则,您将面临错误。因为当创建新列时,它将为空(不是唯一的)。在这种情况下,您必须回滚迁移。

进行新的迁移

php artisan make:migration change_body_to_nullable_in_reviews_table --table=reviews

你把这个放在哪里

    public function up()
    {
        Schema::table('reviews', function (Blueprint $table) {
            $table->text('body')->nullable()->change();
        });
    }

    public function down()
    {
        Schema::table('reviews', function (Blueprint $table) {
            $table->text('body')->nullable(false)->change();
        });
    }

然后运行PHP artisan migration

本文地址:http://php.askforanswer.com/laravel-5-2ruhezaibudiushishujudeqingkuangxiagengxinqianyi.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!