2017-04-20 116 views
0

我是Laravel的新人。我面臨一個問題。Laravel遷移文件

我創建使用php artisan make:migration create_test_table命令遷移文件。

然後它創建一個包含當前日期/時間前綴的文件。我打開該文件並在其中創建一個數據庫表。然後我運行了php artisan migrate命令,但它沒有在數據庫中創建表。

然後我編輯的文件的名字,並把舊的日期/時間前綴就跑php artisan migrate命令,它在數據庫中創建表。

有人可以告訴我爲什麼會發生這種情況嗎?我怎樣才能解決這個問題?請幫忙。

+0

如果你這麼做了幾次,那麼你的數據庫中有一些遷移日誌和一個或兩個附加表。嘗試刪除該測試數據庫中的所有表並嘗試再次遷移 – boroboris

+0

舊日期/時間的含義是什麼? –

+0

當你運行'php artisan migrate'時,你會看到什麼錯誤信息? – Eisenheim

回答

0

我想遷移的文件名2017_04_20_081449_create_test_table.php已經遷移表存儲的話,你可以從遷移表在數據庫中刪除2017_04_20_081449_create_test_table.php名,之後你需要運行php artisan migrate命令。

希望爲你工作!

+0

我已刪除我的所有遷移文件,並刪除數據庫。現在我創建了具有相同名稱的新數據庫並創建了新的遷移文件。即'2017_04_21_043525_create_pet_table.php'。 然後我運行'php artisan migrate'命令,它顯示: - –

+0

'遷移表創建成功。 [照亮\數據庫\ QueryException] SQLSTATE [42000]:語法錯誤或訪問衝突:1071指定的鍵過長;最大密鑰長度爲767字節(SQ L:alter table'users'添加唯一的'users_email_unique'('email')) [PDOException] SQLSTATE [42000]:語法錯誤或訪問衝突:1071指定密鑰太長;最大密鑰長度是767字節'。 然後我檢查了我的數據庫。它只顯示兩個表格:遷移和用戶。 –

+0

它的weired,但我刪除了'用戶和密碼重置遷移文件',然後運行'php artisan migrate'命令。現在新建表已成功創建。 有人可以解釋爲什麼它是? –