繁体   English   中英

Laravel PHPUnit在使用SQLite的ALTER TABLE上失败

[英]Laravel PHPUnit failing on ALTER TABLE using SQLite

我在项目开始时进行了一次迁移,基本上是添加了一个名为“ description”的TEXT列,该列设置为NOT NULL。

现在走了几个月,我需要将其更改为允许null。

我不能使用Laravel 5.5 change()函数,因为我的列列表中有一个枚举,并且会出错,因此需要像这样的迁移中将其作为原始查询添加;

DB::statement('ALTER TABLE `galleries` MODIFY `description` TEXT NULL;');

当我对本地mysql数据库进行php artisan迁移时,一切都很好,但是当我尝试运行测试套件时,一切都中断了。

我在测试套件中使用SQLite,错误如下。

PDOException: SQLSTATE[HY000]: General error: 1 near "MODIFY": syntax error

如果有人解决了这个问题并解决了这个问题,我很想听听您是如何做到的。

谢谢

SQLite仅允许您重命名表或添加列。 ALTER TABLE语句无法更改或删除列。

为了更改或删除SQLite中的列,您需要创建具有所需模式的新表,将数据从原始表复制到新表,删除原始表,然后将新表重命名为原始名称。 。

Laravel和DBAL为您提供了所有这些摘要,因此最好的选择也许是获得帮助,以找出枚举列中的问题(尽管这将是一个单独的问题)。

您可以在此处SQLite文档中了解有关更改表的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM