Infrastructure as Code (IaC)
Infrastructure as Code (IaC)は、コードベースでインフラを管理する方法です。
インフラ周りのコードも GitHub で管理すれば、別のプロジェクトを立ち上げたいときに、再利用が可能であるため、効率よくセットアップすることができます。
- 自動化: インフラを自動化し、手動で行うタスクをスクリプト化することができます。これにより、インフラのセットアップや更新を効率的に行うことができます。
- 再現性: インフラをコードベースで管理するため、環境を簡単に再現することができます。
- 統一性: インフラを統一し、統一したインフラを使用することで、一貫性を維持することができます。
- 監査性: インフラの変更履歴を記録することができるため、監査性が高くなります。
- 統合性: DevOps のフローを統合することができ、開発から運用までのワークフローを効率化することができます。
テーブル作成
Supabase はダッシュボード上でテーブルを作成できますが、インフラ設定もコードで管理したいので、SQL Editor を使用して構築していきます。
SQL Editor
SQL Editor をクリックして New query で SQL コードを書いていきます。
コードを貼り付けて RUN すると、一気にテーブルなどが作成されます。
-- postsテーブル作成
create table posts (
id uuid not null default uuid_generate_v4() primary key,
name text not null,
prompt text not null,
image_url text not null,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
-- postsテーブルRLS設定
alter table posts enable row level security;
create policy "誰でも参照可能" on posts for select using ( true );
create policy "誰でも追加可能" on posts for insert with check ( true );
-- storage作成
insert into storage.buckets (id, name, public) values ('posts', 'posts', true);
create policy "誰でも参照可能" on storage.objects for select using ( bucket_id = 'posts' );
create policy "誰でも追加可能" on storage.objects for insert with check ( bucket_id = 'posts' );
テーブル作成
create table
でテーブルを作成することができます。
Row Level Security 設定
create policy
で RLS を設定していきます。
アクセス制限を細かく設定することができます。
Storage 作成
insert into storage.buckets
でストレージを作成します。
ストレージにもポリシーを設定することができます。
以上で、Supabase の設定は終了です。
テーブルとストレージが作成できていることを確認してください。
Infrastructure as Code で、簡単にデータベースの構築ができてしまいます。