Note

Hasuraを利用する際にマイグレーションとシードデータを管理してローカル開発環境を整えたい。

マイグレーションファイル

hasura consoleからHasuraのコンソールを立ち上げると、コンソールで変更した各種テーブルの設定がマイグレーションファイルとして落ちるっぽい。

また以下のコマンドでコンソール上の設定をマイグレーションファイルとして落とせる。

hasura migrate create "name" --from-server

シードファイル

マイグレーションファイル同様、Hasuraのコンソールで追加したデータを以下のコマンドでファイルとして落とせる。

hasura seed create 出力されたファイルに付ける名前 --from-table テーブル名

またHasura上の各種設定に関しては以下のコマンドでexportされる

hasura export metadata

最終的には以下のようなフォルダ構成になる。 これを各種applyコマンドを実行することで各種環境に反映ができる。

hasura
├── config.yaml
├── metadata
│   ├── actions.graphql
│   ├── actions.yaml
│   ├── allow_list.yaml
│   ├── api_limits.yaml
│   ├── backend_configs.yaml
│   ├── cron_triggers.yaml
│   ├── databases
│   ├── graphql_schema_introspection.yaml
│   ├── inherited_roles.yaml
│   ├── metrics_config.yaml
│   ├── network.yaml
│   ├── opentelemetry.yaml
│   ├── query_collections.yaml
│   ├── remote_schemas.yaml
│   ├── rest_endpoints.yaml
│   └── version.yaml
├── migrations
└── seeds

参考