保存数据库字段更改 - 最佳做法?版本控制,Loggable?

Tny*_*Tny 5 database doctrine symfony

我使用Symfony 2和Doctrine作为ORM Framework.我正在寻找保存对数据库字段所做更改的最佳方法.我将有大约100个表,每个表有大约50个字段和几千行.现在我想保存对字段所做的所有更改.

我想到的可能性:Doctrine扩展"Loggable" - 保存不同表中的更改,但不知道它是否可以承受这么多的条目.

每个表的MySQL触发器,用于保存新表中的更改?

但保存更改的最佳做法是什么?

Bár*_*más 5

您可以使用MySQL触发器或提到的DoctrineExtension Loggable功能.这两部作品都有缺点和优点.MySQL触发器可以写入单独的表(参见mysql触发器FAQ).

触发:

  • ++框架,独立于编程语言
  • 当您想要手动或通过脚本修改数据时,++可以正常工作.
  • - 您必须为每个表编写触发器,或者必须在SQL中找出一些通用解决方案(我无法帮助).
  • - 如果您不熟悉存储过程和PL/SQL,那么就有学习曲线

学说扩展:

  • ++只需将注释放在类上即可.
  • ++您可以查询历史记录,通过Repository API恢复更改
  • - 你自己锁定供应商,这有时是,有时不是问题
  • - 手动或使用第三方脚本修改数据时不起作用.

如果把学说转换成其他东西的可能性很低,我会从学说扩展开始.它毕竟是一个有助于处理SQL的确切目的的工具.