2017-10-02 4 views
0

create a new rds (postgre) instance with terraformに問題ありません。しかし、インスタンスの準備ができたらSQL(init.sql)を実行する必要があります。terraformで新しいpostgreインスタンスを作成した後にinit sqlを実行する方法

このSQLは一度だけ実行する必要がありますが、どうすればよいですか?

私はlocal-execまたはremote-execを試しましたが、できません。 RDSはVPC内のプライベートサブネット(データレイヤー)に作成され、管理されているサービスです。 sql cliを実行するためにログインする方法はありません。

+0

実際にここで何を達成しようとしていますか?インスタンスにスキーマ/ロールを作成する必要がありますか?または、作成時に実行したい特定のSQLスクリプトがありますか? – ydaetskcoR

+0

同様、データベースの作成、initデータを持つテーブルなど。 – Bill

+0

これを行う方法は現在ありません。理想的な方法は、アプリケーションサーバー(または同様のもの)から行うことです。いくつかのオプションがあります 1. Terraformを使用してアプリケーションサーバーをデプロイし、EC2と仮定している場合は、最初にRDSインスタンスを作成してからアプリケーションサーバーを作成し、remote-execを使用してinit.sqlスクリプト。 2. CIパイプラインを使用してコードを展開する場合、別の手順としてDBの初期化を追加できます。 3.アプリケーションにロジックを追加して、最初の起動時にDBを初期化することもできます。 – Animesh

答えて

0

私は同じ要求をしています。私はset a schedule task in ECSの解で終わります。私は手動で現時点でそれをアクティブにするまで、スケジュールの時間を渡された日付に設定し、それは実行されません。

データベースはテラフォームで作成された後だから、私はAWSは、新しいスキーマを適用する必要がある場合には、将来的に有用であろうだけ

1時間を実行するには、このスケジュールタスクアクティブにコンソールのログイン。

また、psqlクライアントドッカーの画像(https://hub.docker.com/r/jbergknoff/postgresql-client/)を調整してaws cliを追加するので、s3からsqlをコピーして更新を実行できます。

関連する問題