データリポジトリ#
各組織には、Git で管理されるデータリポジトリがあります。アプリ内の ファイル ビューと通常の Git クローンは同じ履歴を編集するため、プルリクエストでレビューしたモデルが、そのまま Supernova で実行されます。
text
models/
revenue.sql
dashboards/
revenue/
page.md
monthly.sql
themes/
skycrane.json
packages/
skycrane/finance/typesql.pkg
typesql.lockファイル構成#
| パス | 意味 |
|---|---|
models/**/*.sql | マテリアライズするモデル。ファイルのベース名が出力テーブル名になります。 |
dashboards/<slug>/page.md | ダッシュボードのレイアウトとフロントマター。 |
dashboards/<slug>/*.sql | そのダッシュボードで使用するクエリ。 |
themes/<slug>.json | 組織が作成したチャートのテーマ。 |
packages/<namespace>/<name>/typesql.pkg | 内容を固定した typesql パッケージ。 |
typesql.lock | 型チェックで使用する正確なパッケージハッシュ。 |
リポジトリを変更#
ファイル ビューでは、ローカルにチェックアウトせずに編集、履歴、アクティビティを利用できます。ローカルで作業するには、組織の設定で SSH キーを追加し、リポジトリの URL をコピーしてから、通常の git clone、git pull、git push コマンドを使用します。
受け付けられたプッシュは、それぞれ新しいリポジトリリビジョンになります。モデルの実行は固定のリビジョンを読み取り、2 つのコミットのファイルを混在させません。ダッシュボードのページも、同じ履歴から隣接するクエリファイルを解決します。
名前は契約#
models/revenue.sql を移動すると、モデルの名前空間が変わります。ファイル名を変更すると、出力テーブルが変わります。ダッシュボードとパッケージのパスも識別子であるため、パスの変更は見た目の編集ではなく、API の変更としてレビューしてください。
Supernova は、解析したテーブル参照と明示的な -- depends_on: ディレクティブから、モデルの依存関係を導きます。フォルダーの順序やファイルの更新時刻で実行順序が決まることはありません。