顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2014-10-20 14:34:14
看板 
作者 meteorsok (花花小蛋糕)
標題 Re: [請益] 誤刪了DB裡的table,如何重新migrate?
時間 Mon Oct 20 13:41:02 2014


※ 引述《youneverknow (睡覺一直想)》之銘言:
: 小弟測試的時候手殘直接drop了DB裡的所有table
: 重新執行php artisan migrate:refresh
: 會報出找不到table去drop的錯
: 因而無法執行
: 請問這種狀況要怎麼解決.....
: 謝謝


#我用laravel 4.1

首先,如果你說的是真的: 手殘直接drop了DB裡的所有table

你migrate:refresh報的錯誤不會是找不到table drop

而是沒有migrations 這個 table

(
  migrations table裡面放的是framwork migrate的紀錄

  framework會依據裡面的內容來檢查現migrate到哪,而去執行相關動作

)


假設migrations table還在,而其他table都不見

你需要做的事情是把migrations清空 or 也把他砍了

直接run migrate 就好,不要refresh

refresh 代表執行兩個動作: rollback and migrate

framework發現migrations裡有你migrate的紀錄,想要rollback

而migrate file 裡的 down,有drop table的動作,但沒table讓它drop

才會出現你說的錯誤訊息


小注意

laravel refresh會把所有的migrate file都run 成 batch 1

為何不幫忙紀錄batch呢? 這我就不曉得了...




--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.8.201
※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1413783665.A.FB4.html

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 174 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇