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