假设我有一个名为“foo”的数据表,并且还包含外键。现在我想在这个表格中创建一个名为“description”的列。没有重置或回滚如何迁移此表?因为如果我重置或回滚表,那么所有数据都将丢失。如何在laravel数据库中创建列而不丢失数据
0
A
回答
1
根据docs,您只需创建一个单独的迁移来创建新列。
创建迁移
php artisan make:migration add_description_to_foo
然后,只需设置迁移了您要添加的细节,如:
Schema::table('foo', function ($table) {
$table->text('description');
});
然后,你可以进行迁移:
php artisan migrate
这将允许您添加一列而不重置或回滚表格,从而防止丢失数据。
1
让我们从您的模式开始。你的表名是foo
。您希望在您的foo
表格中添加description
列,而不会丢失现有数据。您需要为此更改创建新的迁移。
php artian make:migration add_columns_to_foo_table --table=foo
新迁移文件将在您的迁移目录中创建。打开它,改变它像这样:
Schema::table('foo', function ($table) {
$table->text('description');
});
保存它,然后运行
php artisan migrate
description
栏会立即而不会丢失旧的数据作为最后一列被创建。如果要重新定位你的description
列,您需要使用after
(在MySQL的情况下)是这样的:
Schema::table('foo', function ($table) {
$table->text('description')->after('another_column');
});
希望你得到它。
您将在这里找到更多的细节:https://laravel.com/docs/5.3/migrations#creating-columns
我已经回答了完全相同的问题,几个小时前,请检查:http://stackoverflow.com/questions/40458055/laravel-rename-coloumn-loss - 所有数据 –