CData Virtuality Server では、バージョン管理にGit を使用することができます。現在、私たちのGit Integration の実装では、基本的なオブジェクトをサポートしています。データソース、仮想スキーマ、ビュー、ストアドプロシージャ、ジョブ、スケジュール、キューハンドラ、最適化、推奨インデックス、推奨最適化シンボル、備考、ユーザー、ロール、パーミッション、データカタログ属性、そしてWeb ビジネスデータショップに公開されているオブジェクトで、将来的にはさらに多くの種類のオブジェクトを追加する予定です。Git Integration を管理するために、CData Virtuality Server にはGit を操作するための専用のストアドプロシージャがあり、その詳細はhereで説明されています。
Development on a Single Instance
この図は1つのインスタンスでの開発を示しています:
各インスタンスには1つのカレントブランチがあり、これは設定可能です。複数のインスタンスで同じブランチを実行することもできます。
Outgoing Flow (from SQL Engine over Local to Remote Repository)
- SQLエンジンで行われたすべての変更は、自動的にローカルリポジトリ(A)に「ステージング」されます。
- 変更は、リモートの リポジトリに手動で(SQL ストアドプロシージャを使用して)、または自動的/スケジュールで(C.)pushed されます
Some objects can be generally excluded from commits.
Incoming Flow (from Remote Repository over Local to SQL Engine)
- リモートからローカルリポジトリへ: git pullストアドプロシージャ(C)でリモートリポジトリから。
- ローカル リポジトリからSQL Engine へ: git deployにストアドプロシージャ(B)を使用してリポジトリからの変更を適用します。
It is possible to check out a different branch onto the instance, which will clean up the instance from the previous branch and completely deploy the new branch.
Deployment Between Instances over the Central Git Repository
この図は、中央のGit リポジトリを介したインスタンス間のデプロイを示しています:
Development
Push開発から中央リポジトリへの移行は、手動またはスケジュールされたジョブで行うことができます。
中央リポジトリのmaster ブランチにマージすることも、master ブランチなしで作業することもできます。
コードレビュープロセスはツールセットに依存します。例えば、Gitlab ではマージリクエストに基づいたコードレビュープロセスを使うことができます。Crucible を使用すると、JIRA 課題の一連のコミットに基づいてコードレビューを行うことができます。
Deployment on Test/Production
test/production にデプロイする場合、変更は関連するブランチにマージされます。
テスト環境と本番環境の更新には2つの可能性があります:
gitPull
と プロシージャの組み合わせ、つまり、最新の変更を取得して SQL エンジンにデプロイします(これは手動または自動で実行できます)。gitDeploy
変更されたオブジェクトのみがデプロイされます;- 新しいブランチを適用する前にSQLエンジンの内容をワイプして、新しいブランチがchecked outインスタンス上のローカルdeployed SQLエンジンによってどこにあるかをチェックアウトします。
ロールバックの場合、個々のコミットがチェックアウト/デプロイされます(これには事前にサーバーをリセットすることも含まれます)。
Tagging
git では、タグはリポジトリの履歴の特定の時点にラベルを付けるために使われます。最も一般的な使い方は、リリースポイントをマークすることです (「v0.5」や「1.0.0」など)。
gitTag
の手順で、git リポジトリが有効になっていればいつでもタグを作成できます。タグはローカルに作成され、gitPush
を実行してローカルのタグをリモートリポジトリに送信する必要があります(リモートリポジトリが定義されている場合)。
タグは主にリリースをマークするために使用されるため、これを使用する簡単な方法の1つは、機能の開発が完了したときにgitTag
プロシージャを呼び出し、その時点を関連するマイルストーンとしてマークすることです。最も一般的な開発ワークフローでは、(テストとデプロイのように)異なる環境を扱うためにブランチを使用しますが、特定のタグでgitCheckout
を実行できるように特定のリポジトリポイントをタグ付けし、その内容をデプロイすることで、サーバーの状態がタグ付けされたものであることを確認することができます。