假設我有一個名爲「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 - 所有數據 –