前提・実現したいこと
以前の質問(dockerでpostgreSQLのコンテナ作成時にテーブルやデータも入れたい)でわからないところがあったので質問です。
コンテナ作成時に読み込まれるSQLファイルでpsqlコマンドを使用するとエラーが発生してしまいます。
以下がやってみたことです。
どうすればよいでしょうか?ご助力お願いします。
試したこと
①以下のSQLファイルでコンテナを起動
1-createdb.sql
CREATE DATABASE testdb; psql --username postgres --dbname testdb CREATE TABLE public.sampletable( id text not null, pw text not null );
②コンテナを起動
docker-compose up -d --build
③pgAdminで作成したDBコンテナの中身を確認
→testdbのデータベースは作成されているがテーブルは作成されず
④DBのコンテナのログを確認
docker logs db-container
→以下のエラーが出力されている
psql:/docker-entrypoint-initdb.d/1_createdb.sql:13: ERROR: syntax error at or near "psql"
※ここでPSQLコマンドが使えないのでは?と思いDBコンテナ側で以下を試しました。
⑤コンテナ内に入りPSQLコマンドを試す
docker exec -it db-container /bin/ash #alpine linuxを使用しているのでbashではなくashであっています psql --version
→バージョン情報が表示される
⑥念のためSQLファイルに記述したものと同じものを試す
psql --username postgres --dbname testdb CREATE TABLE public.sampletable( id text not null, pw text not null );
→testdbにsampletableが作成される
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。