我当前遇到的问题是重置临时堆栈.我想在集成测试开始时使用空白数据库实例.然而,重新部署新的RDS实例需要几分钟,这意味着集成测试需要很长时间(> 20分钟)才能运行.
因为它是在弹性beanstalk上它是在VPC中,因此用sql命令重置数据库,似乎CI服务器必须用ssh隧道做一些棘手的事情,这对于那个简单的(至少对我而言)也是如此.
1)最佳选择IMO,但可能需要一些编码 – postgresql支持保存点,因此您可以构建测试,它们将始终保持数据库清洁(对本地测试也很有用).我们的想法是在开始测试之前创建一个保存点,并在最后回滚到该保存点.这样,测试所做的所有更改都将被删除.
2)当您的测试开始时,您可以运行sql命令来删除/创建数据库.您的测试可以连接到数据库,因此您可以从代码中执行此操作,不需要通过ssh执行此操作.如果数据量很小,您可以为每个测试运行创建一个新数据库.您可以将其命名为“mydb20160115101112”(具有当前日期和时间).
3)实际上也可以从CI配置中删除/创建数据库(也没有ssh或其他复杂的东西),你的登台实例已经可以访问RDS,所以你可以使用psql运行一些sql命令,如下所示:
psql -c“drop database mydb20160115101112;” –dbname = template1的
要以这种方式使用psql(无需输入用户名/密码),您需要创建一个与系统用户同名的postgresql用户(确保为CI使用的系统用户创建postgresql).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。