postgresql – 将AWS RDS实例重置为初始状态的最快方法?
我正在尝试在弹性beanstalk上创建一个简单的postgres RDS支持的CRUD Web应用程序的暂存版本.此暂存版本的目的是在将这些更改重新部署到生产环境之前,在实施新代码更改时运行集成测试.
我当前遇到的问题是重置临时堆栈.我想在集成测试开始时使用空白数据库实例.然而,重新部署新的RDS实例需要几分钟,这意味着集成测试需要很长时间(> 20分钟)才能运行. 因为它是在弹性beanstalk上它是在VPC中,因此用SQL命令重置数据库,似乎CI服务器必须用ssh隧道做一些棘手的事情,这对于那个简单的(至少对我而言)也是如此. 是否有快速方法将正在运行的RDS实例重置为空白状态以进行测试?
我认为你想要的是拥有空白数据库(与空白RDS实例相比),这里有几个选项可以做到这一点:
1)最佳选择IMO,但可能需要一些编码 – postgresql支持保存点,因此您可以构建测试,它们将始终保持数据库清洁(对本地测试也很有用).我们的想法是在开始测试之前创建一个保存点,并在最后回滚到该保存点.这样,测试所做的所有更改都将被删除. 2)当您的测试开始时,您可以运行SQL命令来删除/创建数据库.您的测试可以连接到数据库,因此您可以从代码中执行此操作,不需要通过ssh执行此操作.如果数据量很小,您可以为每个测试运行创建一个新数据库.您可以将其命名为“mydb20160115101112”(具有当前日期和时间). 3)实际上也可以从CI配置中删除/创建数据库(也没有ssh或其他复杂的东西),你的登台实例已经可以访问RDS,所以你可以使用psql运行一些SQL命令,如下所示: psql -c“drop database mydb20160115101112;” –dbname = template1的 要以这种方式使用psql(无需输入用户名/密码),您需要创建一个与系统用户同名的postgresql用户(确保为CI使用的系统用户创建postgresql). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |