[英]Laravel 5.1 - test database with SQLite gives 'no such index' error on migration down()
運行時,下面的架構構建的代碼工作完全 php artisan migrate
和php artisan migrate:rollback
本地和分期 (生產等)的環境。 這將運行alter table
語句來修改現有表。
注意:由於行為空,因此無需為category_id
設置nullable
或default value
:
// up
$table->integer('category_id')->unsigned()->index();
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
// down
$table->dropForeign('stores_category_id_foreign');
$table->dropColumn('category_id');
我正在使用SQLite運行我的功能測試:memory:
配置,當數據庫回滾時我收到以下錯誤(感謝DatabaseMigrations
特性)
General error: 1 no such index: stores_category_id_index (SQL: DROP INDEX stores_category_id_index)
為什么會發生這種情況,我不得不在SQLite上配置一些我不知道的東西?
默認情況下,SQLite禁用外鍵支持。
您需要手動啟用它或使用其他數據庫。
上面的鏈接討論了如何執行此操作,但基本上您需要找到一種方法在測試之前在功能測試環境中運行'PRAGMA foreign_keys = 1'。
免責聲明:我只在Laravel 5上試過這個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.