2

我们使用Phingdbdeploy 任务来对我们的 PostgreSQL 数据库进行版本控制,这完全是一种很好的工作方式。在我们开始使用它之后,我对数据库版本并没有太多问题,除了一个令人烦恼的疑问:我们如何控制数据库包含的数据?

现在,我通常有一个包含一些示例数据的增量,用于测试,但在生产环境中,我想要生产数据,如实际有效数据。当然,我可以编写另一个 delta 截断 testdata 并插入实际数据,但不知何故,这感觉很笨重,因为 delta 中唯一的语言是 SQL。在编写这样的 delta 时,处理序列并确保外键关系正确是一件非常痛苦的事情。

所以我认为编写一个从 CSV 文件导入数据的 PHP 脚本可能是有意义的。这实际上会起作用,直到有另一个数据库更改重命名列,这将使 PHP 文件无用。当然,这很容易通过更新脚本以合并数据库更改并重新运行脚本来解决,但这很容易出错,这就是我首先开始使用 dbdeploy 的原因。

所以,我的问题是;在部署更改时如何处理数据,或者更准确地说:如何插入生产环境所需的数据?

4

1 回答 1

1

你是对的,测试数据应该被排除在增量之外,就像不应该在生产系统上进行测试一样。你用什么来测试?Phpunit,硒,...?你使用任何 php 框架吗?

无论如何,最好的方法可能是使用您碰巧使用的任何工具可能已经附带的东西。例如 Symfony 1.x 有相当好的夹具管理。对于测试 PHP 代码,PHPUnit 是一个事实上的标准,它带有一些夹具管理。尝试查看 PHPUnit 文档以获取有关它如何处理数据集的更多信息:http ://www.phpunit.de/manual/current/en/database.html#understanding-datasets-and-datatables

于 2011-09-22T13:34:58.240 回答