CData Arc の構成をGit でバージョン管理する方法
目次
この記事では、CData Arc の構成をGit でバージョン管理する方法を説明します。この記事は、読者がGit に精通していること、Git を使用してプロジェクトのバージョン管理を行う方法を理解していることを前提としています。
この記事では、初期化、バージョン管理に含めるべきリソースとそうでないリソース、変更の追跡とコミットなどのトピックについて説明します。
Git のアーキテクチャ、コマンド、ガイドの詳細については、Git の公式ドキュメントを参照してください。
Git リポジトリの初期化
Arc はそのままではバージョン管理されていないため、Arc のインストールディレクトリをGit リポジトリとして初期化する必要があります。
この例では、Arc のインストールはマシンのC:∕arc にあります。このディレクトリをGit リポジトリとして初期化するには、そのディレクトリ内で次のコマンドを実行する必要があります:
git init
これにより、必要なすべてのリポジトリファイルが含まれる.git という名前の新しいサブディレクトリ(Git リポジトリのスケルトン)が作成されます。
これで、既存のファイルやリソース、ディレクトリをバージョン管理できるようになりました。まずは必要なファイルを追跡し、gitignore を作成して最初のコミットを行うことをお勧めします。これは、追跡するファイルを指定するいくつかのgit add コマンドを実行し、その後にgit commit を実行することで実現できます。これについては、後のセクションで説明します。
まず、最も重要なステップは、新しく初期化されたGit リポジトリ用の包括的な.gitignore ファイルを作成することです。
.gitignore ファイル
.gitignore ファイルは、Arc の構成をGit で効果的に管理するための最も重要なステップのひとつになります。というのも、アプリケーションのディレクトリ内には、バージョン管理にチェックインすべきでないデータやリソースが多数あるためです。ここでの目標は、不要なコンポーネントを無視して、必要なデータとリソースのみを追跡することです。
Arc に関しては、.gitignore ファイルに含める必要があるリソースには、アプリケーションディレクトリとコネクタディレクトリの2つのカテゴリがあります。
無視すべきリソース
以下は、バージョン管理で無視することが推奨されるArc 内のリソースの包括的な推奨リストです。
- アプリケーションディレクトリ - これらのディレクトリには、アプリケーションデータベースによって管理される情報や、バージョン管理には必要のない情報が含まれています。
- api
- locks
- lib
- connectors
- db
- logs
- reports
- コネクタディレクトリ - これらのディレクトリには、"workspaces" および"data" ディレクトリ内のすべてのコネクタからの未送信ファイル、受信ファイル、送信ファイルのコピー、およびログメッセージが含まれます。
- Send
- Receive**
- Sent
- Archive
- Logs
- Resources/Samples/Backups
**特定のコネクタ(Branch、Copy、EDI など)には、特定のユースケース用に追加のReceive フォルダを持つことができます。例えば、Branch コネクタは、グレーの矢印で示される"else" パスに何も接続されていない場合、ReceiveElse フォルダを持つことができます。これらのフォルダと標準のReceive フォルダを無視するには、Receive の後にワイルドカード文字を使用して(Receive*)、他のすべてのReceive タイプのフォルダと一致させます。
.gitignore ファイルの例
バージョン管理で無視することを推奨するリソースについて説明しましたが、以下の.gitignore ファイルは、ベースラインとして使用することを推奨する内容のリストです:
#exclude the following dirs and resources in the application dir
api/
locks/
lib/
connectors/
db/
logs/
#version control the report.cfg file but ignore the .csv result files
reports/*/*.csv
#exclude the following dirs and resources from the workspaces dir
workspaces/*/*/Send
#exclude all iterations of Receive folders.
#if you use additional paths for SFTP/FTP Server, be sure to include them here
workspaces/*/*/Receive*
workspaces/*/*/Sent
workspaces/*/*/Archive
workspaces/*/*/Logs
workspaces/*/Resources/Samples
#exclude backup .bak files that are generated by XML Map Connectors
workspaces/*/Resources/*.bak*
#exclude the following dirs and resources from the data dir
data/*/Send
data/*/Receive*
data/*/Sent
data/*/Archive
data/*/Logs
data/*/Resources/*.bak*
変更の追跡
上記の推奨事項を使用してArc をバージョン管理すると、すべてのコネクタ設定、フロー、ワークスペース、プロファイル設定、アプリケーション設定、およびユーザーがGit のバージョン管理によって追跡されます。次に、これらのファイルをステージングしてコミットします。
以下に示す例では、Visual Studio Code 内でGit を使用します。
NOTE: これは1つの"master" ブランチを使用して実行されています。
変更
上記のリソースのいずれかに変更が加えられると、Git 内のファイルのステータスが"modified" に変わります。例えば、ユーザーがコネクタの設定を変更した場合、変更されたコネクタのport.cfg ファイルには大文字の"M" が表示されます:

これは"git status" コマンドを実行することでも確認でき、作業ディレクトリとステージングエリアのステータスが表示されます:

追跡されていない変更
新しいコネクタやワークスペースが作成されたり、証明書などのリソースが追加されたりした場合は、それらがリポジトリに追加されてコミットされるまで"untracked" と表示されます。これは、新しいリソースの横に大文字の"U" で表されます:

この場合、新しいワークスペースを追加すると、追跡されていない"MyNewWorkspace" ディレクトリとflow.json ファイルが作成されます。
これは、"git status" コマンドを実行することでも確認できます:

変更のステージング
Arc 内の作業セッションが終了すると、変更された部分と追跡されていない部分の両方が蓄積されます。これらは、ターミナルやPowerShell で"git status" コマンドを実行すると表示されます。
これらの変更は、Git のバージョン管理と統合されたコードエディタ(例えば、Visual Studio Code の"Source Control" タブ)内で確認するか、ターミナルやPowerShell を使用して変更を確認することをお勧めします。
変更が正しいことが確認できたら、コミットする前にまず変更をステージングエリアにプッシュする必要があります。追跡されているファイルとされていないファイルのすべての変更を追加するには、"git add -A" コマンドを実行します:
git add -A
変更を追加した後は、もう一度「git status」を実行して、すべての変更がステージングされ、変更されたり追跡されていないものが残っていないことをダブルチェックすることをお勧めします。
変更のコミット
作業セッションの変更がステージングされたことを確認したら、その変更をGit リポジトリのmaster ブランチにコミットします。これにより、リポジトリが更新され、現在のArc のインスタンスが反映され、必要に応じて将来的にこの場所にロールバックできるようになります。
変更をコミットするには、commit コマンドを実行し、コミットする変更を簡単にまとめたコミットメッセージを入力します。例えば、ユーザがXML ファイルからデータを解析するためのScript コネクタを追加した場合、コミットは以下のようになります:
git commit -m "adding script connector responsible for parsing token out of input XML"
データ連携をノーコードで
CData Arc なら、業務システム間のデータ連携をノーコードで簡単に実現できます。Arc を5分で体験できる製品ツアーで、アプリ間連携フローの作成をご体験ください。