Laravel 5.1 - 使用SQLite测试数据库给出了没有这样的索引'迁移错误()

时间:2015-08-14 01:37:04

标签: php sqlite laravel laravel-5 laravel-5.1

本地暂存(生产)上运行php artisan migratephp artisan migrate:rollback时,以下架构构建器代码可以完美环境。这将运行alter table语句来修改现有表。

注意:由于行为空,因此无需将nullabledefault value设置为category_id

// 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');

我使用:memory:配置使用 SQLite 运行我的功能测试,并且当数据库回滚时我收到以下错误(感谢{{ 1}}特质)

DatabaseMigrations

为什么会发生这种情况,我是否需要在SQLite上配置一些我不知道的东西?

1 个答案:

答案 0 :(得分:2)

默认情况下,SQLite禁用了外键支持。

您需要手动启用它或使用其他数据库。

Laravel 5.1: Enable SQLite foreign key constraints

上面的链接讨论了如何执行此操作,但基本上您需要找到一种方法在测试之前在功能测试环境中运行'PRAGMA foreign_keys = 1'。

免责声明:我只在Laravel 5上试过这个