Chr*_*sco 6 php sqlite laravel laravel-5 laravel-5.1
下面的架构构建的代码工作完美运行时,php artisan migrate
与php artisan migrate:rollback
在当地和分期(生产等)的环境。这将运行一条alter table
语句来修改现有表。
注:由于行是空的,没有必要设置nullable
或default 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');
Run Code Online (Sandbox Code Playgroud)
我正在使用配置使用SQLite运行我的功能测试:memory:
,并且在数据库回滚时出现以下错误(感谢DatabaseMigrations
trait)
General error: 1 no such index: stores_category_id_index (SQL: DROP INDEX stores_category_id_index)
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,是否需要在 SQLite 上配置一些我不知道的内容?
小智 2
默认情况下,SQLite 禁用外键支持。
您需要手动启用它或使用不同的数据库。
上面的链接讨论了如何执行此操作,但本质上您需要找到一种方法在测试之前在功能测试环境上运行“PRAGMAforeign_keys=1”。
免责声明:我只在 Laravel 5 上尝试过这个
归档时间: |
|
查看次数: |
1761 次 |
最近记录: |