假设我有一个名为“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
相关问题
- 1. Laravel用户::创建丢失数据
- 2. 如何更改数据库而不丢失数据?
- 3. 如何升级sqlite数据库而不丢失数据?
- 4. 尝试创建数据库时获取数据库丢失
- 5. 凡而不丢失数据
- 6. 如何在生产环境中迁移Mysql数据库而不丢失数据?
- 7. 改变生产中的数据库而不丢失数据
- 8. 更新数据库表,而不会丢失Android中的数据
- 9. Django的:更新数据库模式,而不会丢失数据
- 10. Laravel - 如何创建数据库表
- 11. 从sqlite数据库中丢失数据
- 12. 如何使用FileOutputStream写入数据而不丢失旧数据?
- 13. 如何组合数据框而不丢失数据?
- 14. 数据库模式不同步 - 需要更新数据而不丢失数据
- 15. 如何使数据库调用,而不会丢失?
- 16. 仅在实体模型中创建列而不在数据库中创建列
- 17. 在logCat中发现创建的数据库丢失
- 18. 如果管理数据库丢失,如何访问数据库?
- 19. 在数据库中添加预填表,而不会丢失现有数据
- 20. 如何在R中子集数据而不丢失NA行?
- 21. 在Liferay中更改数据库并丢失任何数据
- 22. laravel 4.2未创建到数据库中
- 23. Laravel在测试时创建数据库
- 24. 跳跃而不会丢失数据
- 25. 使用串口而不丢失数据
- 26. 导航,而不会丢失数据
- 27. Android SQLite升级而不丢失数据
- 28. mysql数据库丢失
- 29. 丢失的数据库表
- 30. 的MySQL数据库丢失
我已经回答了完全相同的问题,几个小时前,请检查:http://stackoverflow.com/questions/40458055/laravel-rename-coloumn-loss - 所有数据 –