【发布时间】:2018-03-13 05:01:51
【问题描述】:
我很好create a new rds (postgre) instance with terraform。但是我需要在实例准备好后运行一个 sql (init.sql)。
这条sql只需要运行一次,我该怎么办?
我试过local-exec 或remote-exec,我不能。 RDS 在 VPC 的私有子网(数据层)中创建,它是 aws 托管服务。没有办法登录运行sql cli。
【问题讨论】:
-
你到底想在这里实现什么?您是否需要在实例上创建架构/角色?或者您有想要在创建时运行的特定 SQL 脚本?
-
类似的,比如创建数据库,带init数据的表。
-
目前没有办法做到这一点,我相信。理想的方法是从您的应用程序服务器(或类似的东西)中进行。一些选项,在许多选项中 1. 如果您使用 Terraform 部署您的应用程序服务器并假设它是 EC2,您可以首先创建 RDS 实例然后创建您的应用程序服务器并使用 remote-exec 运行您的 init.sql 脚本. 2. 如果您使用任何 CI 管道来部署代码,您可以添加初始化数据库作为另一个步骤。 3. 您还可以在应用程序中添加逻辑以在第一次启动时初始化您的数据库。