はじめに
ゆとり世代の中野です。
さっそくチャレンジについて書いていきます。
チャレンジする背景
- migrationとseedの使い方が知りたい
チャレンジ内容
- 実際にmigrationとseedを作ってみる
やったこと
migrationを作成する
- 以下のコマンドでmigrationを叩く
- moviesというテーブルで作成でクエリを書いた
supabase migration new 名前create table movies (
id bigint generated by default as identity primary key,
name text,
description text
);seedを作成する
- すでにseedのファイルは存在したので追記する
INSERT INTO movies(id, name, description)
VALUES (
1, '名前1', '説明1'
),
(
2, '名前2', '説明2'
);確認する
- supabase cliを再起動する
- Studio URL: http://localhost:54323 のDBにテーブルとレコードが存在することを確認する
supabase stop
supabase start
or
supabase db reset結論
- 簡単にmigrationとseedを試すことができた
さいごに
- ぱっと使う分には簡単にできた
- 何よりSQLで書けるのが最高すぎる!
- 細かいところまでは今後理解進めていく
テーブル | Supabase
テーブルとはデータを格納する場所です。 テーブルはExcelのスプレッドシートに似ています。データの列と行を含んでいます。 例えば、このテーブルには3つの「列」( id, name, description )と4つの「行」のデータがあります。 表計算ソフトとの重要な違いがいくつかありますが、リレーショナル・データベースに初めて触れる方には良い出発点になります。 テーブルを作成する際には、同時にカラムを追加するのがベストプラクティスです。 各カラムの「データ型」は、作成時に定義する必要があります。カラムの追加や削除は、テーブルを作成した後いつでも行うことができます。 Supabaseには、テーブルを作成するためのいくつかの選択肢があります。テーブル・エディターを使用するか、SQLを直接使用して作成できます。 ダッシュボードにはSQLエディターが用意されていますが、データベースに 接続して 、SQLクエリを実行できます。 テーブル名を付ける際には、小文字とアンダースコアを使用するのがベストプラクティスです。例えば、 Table Nameではなく、 table_name とします。 カラムを作成する際に、「データ型」を定義します。 全ての列は定義済みの型です。PostgreSQLは多くの デフォルト型 を提供していますが、デフォルト型がニーズに合わない場合は、独自に設計できます(または拡張機能を使用きます)。 ある型のカラムを別の型に「キャスト」できますが、型の間にいくつかの非互換性が存在します。 例えば、 timestampを date にキャストすると、それまで保存されていた時刻の情報がすべて失われます。 テーブルには「プライマリー・キー」、つまりすべてのデータ行に一意な識別子を設定できます。プライマリー・キーに関するいくつかのヒントを紹介します。 データベース内のすべてのテーブルにプライマリー・キーを作成することを推奨します。 各行で一意であれば、どのようなカラムでもプライマリー・キーとして使用できます。 プライマリー・キーとしてuuid型または番号付きのidentityカラムを使用するのが一般的です。 上の例では、次のようになります。 idという名前のカラムを作成しました。 データ型にbigintを割り当てました。 このカラムがgenerated always as identityであること、つまりPostgresがこのカラムに自動的に一意な番号を割り当てることをデータベースに指示します。 一意であるため、primary key(プライマリー・キー)として使用できます。 また、 generated by default as identity を使用することで、独自の値を挿入できます。 Supabaseにデータを読み込むには、いくつかの方法があります。データベースに直接データを読み込む方法と、 API を使用して読み込みする方法があります。 大きなデータ・セットを読み込む場合は、「バルクでの読み込み」の手順を使用してください。 大きなデータのセットを挿入する場合、PostgreSQLの COPY コマンドを使用することが最善です。 これは、データをファイルからテーブルに直接ロードします。データのコピーに使用できるファイル形式は、テキスト、csv、バイナリー、JSONなど、いくつかあります。 例えば、次のCSVファイルをmoviesテーブルに読み込みます。 データベースに直接 接続 して、COPYコマンドでファイルを読み込みます。 テーブルは、外部キーを使って「結合(結合)」できます。 これは、データが通常ある種の関係を形成していることから、「リレーショナル(関連)」という名称が付けられました。 上記の「movies(映画)」の例では、各映画に「カテゴリー」を追加したいとします(例えば、「アクション」や「ドキュメンタリー」など)。 そこで、 categoriesという新しいテーブルを作成して、 movies テーブルに「リンク」してみましょう。 また、「結合」テーブルを作成することで、「多対多」の関係を作ることができます。 例えば、次のような状況があったとします。 テーブルは schemas に属します。スキーマはテーブルを組織化する方法であり、多くの場合、セキュリティー上の理由からです。 テーブルを作成する際にスキーマを明示的に渡さない場合、Postgresは public スキーマでテーブルを作成するものとみなします。 テーブルを整理するためのスキーマを作成できます。例えば、APIからは見えないプライベートなスキーマが必要な場合は次のように作成します。 これで private スキーマの中にテーブルを作成できるようになりました。 A View is a convenient shortcut to a query.
www.supabase.jp
yutanakano
WEBエンジニア
大阪生まれのゆとり世代です
趣味はバイクでツーリングに行くこと
愛車は Ninja ZX-25R SE KRT EDITION
Expoでプロダクトを作っています