目次
やりたいこと
「DDL(後述)が記載されたSQLファイルを上から順番に実行してほしい」
という指示がありました。
実際は6ファイルくらいありましたが、ここでは3ファイルとします。
public_schema.sql
// publicスキーマ t_userテーブルを作成するファイルとする
// PostgreSQL実行環境の設定、既存オブジェクトの削除なども行う
nogizaka_schema.sql
// nogizakaスキーマを完全に作り直し、業務テーブル一式を作成するファイルとする
insert_nogizaka_schedule.sql
// 初期マスタデータを数件登録するためのデータ投入SQLとする
DDLとは
正式名称:Data Definition Language
データ定義言語と呼ばれる。
テーブルや索引、シーケンスなどのデータベースオブジェクトを定義する言語。
方法
前提条件
DB接続情報は
POSTGRES_DB: project-nogizaka
とします。
流れ
(1)SQLファイルをダウンロードし、Finderの下記に移動
以下のパスは後ほど使用します。
/Users/hoge/Documents/work/client/project-nogizaka/db/DDL
(2)Macのターミナルを開き、プロジェクトのディレクトリがある場所まで移動
user-name ~ % cd /Users/hoge/Documents/work/client/Git/project-nogizaka
user-name project-nogizaka %
3)project-nogizakaにいる状態で以下を実行
ここで1番初めに実行したいファイル「public_schema.sql」を指定します。
docker exec -i nogizaka-db \
psql -U postgres -d project-nogizaka-local \
< /Users/hoge/Documents/work/client/project-nogizaka/db/DDL/public_schema.sql
実行結果
※ イメージです
SET
SET
ALTER TABLE
DROP SEQUENCE
DROP TABLE
DROP SCHEMA
CREATE SCHEMA
COMMENT
SET
CREATE TABLE
CREATE SEQUENCE
ALTER SEQUENCE
ALTER TABLE
(5)正常に実行されたのか確認
// psqlに入る
docker exec -it nogizaka-db psql -U postgres
// psqlに入ると以下のようになる
postgres=#
user-name project-nogizaka % ではなくpostgres=# になります。
ここで \dn を入力してEnterをクリック。
postgres=# \dn
List of schemas
Name | Owner
--------+----------
public | postgres
(1 row)
publicスキーマが存在していることが分かります。
(6)正常に実行されたのか確認
次に以下を実行しテーブルが作成されているか確認します。
\dt を入力してEnterをクリック。
postgres=# \dt public.*
List of relations
Schema | Name | Type | Owner
--------+--------+-------+----------
public | t_user | table | postgres
(1 row)

