1

我正在尝试构建一个脚本来自动化 symfony 项目的更新过程。例如,将任何补丁从一个修订版应用到另一个修订版,包括任何可能的模型更新和新夹具,而无需重新加载整个数据库。

我已经完成了大部分工作,但是我一直无法找到一种方法来生成包含 INSERT 语句的 SQL 文件,这些语句在插入夹具时由推进加载数据执行。

我知道我可以转储数据库以获取信息,但这不是重点,这在我的情况下不起作用,因为我需要一个没有其他数据的空数据库。

简而言之,我的问题是:有没有办法采用夹具 YML 并生成必要的 SQL 插入?

我知道这可以通过处理 yml 和构建逻辑来完成,但是构建过程它在某处完成它并且没有理由再次编写它..

任何帮助将非常感激。

4

1 回答 1

0

也许我没有正确理解您的问题,但是您不能只调用将固定装置加载到数据库中的任务,或者编写调用 sfPropelData::loadData() 的代码(我在这里假设 Propel)。

$loader = new sfPropelData();
$loader->loadData(sfConfig::get('sf_data_dir').'/fixtures');

即使 sfPropelData 及其父 sfData 在加载夹具时也不会生成 sql 代码,而是使用 ORM 来生成(如sfPropelData::loadDataFromArray()所示。

如果您更多地解释您的问题,以及为什么这个解决方案还不够,我可能会提供帮助。

于 2009-03-16T07:04:41.270 回答