我使用的是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
文章标签:laravel-5.2 , php
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:laravel-5.2 , php
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!