如何在SilverStripe中删除过时的数据库列

时间:2016-09-08 15:11:50

标签: php mysql silverstripe

是否有方便的方法从数据库中删除过时的表格列?我想知道是否有更多基于约定的解决方案,而不是登录PHPMyADMIN并手动删除列。

示例 安装SilverStripe-Fluent并添加额外的区域设置(例如nz-NZ)时,模块将拆分每个SiteTree记录以添加前缀为_nz-NZ的额外翻译列。假设我们删除了额外的语言环境(nz-NZ),列将在/ dev / build之后保留在那里。

1 个答案:

答案 0 :(得分:1)

版本2.4有一个很棒的模块DBPlumber具有此功能,但我猜测你使用的是更高版本!如果升级为V3,那将会很棒。

模块artefact cleaner将是理想的。它从github页面的描述是......

  

查找并选择删除SilverStripe中的废弃表格和字段   数据库中。

     

在开发SilverStripe应用程序期间,通常会这样做   删除数据对象类或从数据对象中删除字段。这个   在数据库中留下过时的列和表。因为这些   列或表可能包含您仍然需要的数据   SilverStripe框架不会自动删除它们。这个任务   以SQL DROP和SQL的形式显示过时的列和表   ALTER命令。它还提供了删除它们的方法。如果你这样做,   没有撤消,所以总是先备份。