今回の記事は、以下の動画の内容を日本語に翻訳して、手順だけを抜き出したものになります。
メタデータ形式とソース形式の違いなど、概念的な説明などは、動画を見ていただく方が良いです。
背景
新しくLWCを使用してUIを開発したためスクラッチ組織を始めて利用した。ただパッケージングは第一世代管理パッケージのため、パッケージ組織にスクラッチ組織で作成したメタデータを移行する必要があった。そのための手順を自分の備忘録としてまとめる。
1. ソース形式からメタデータ形式に変換する
まずスクラッチ組織以外の組織にメタデータを移行するには、メタデータAPIを使用する必要があります。
そのためにソース形式からメタデータ形式に変換します。
例として、以下のコマンドを使用します。
sfdx force:source:convert -d "deploymentfolder"
-d コマンドで変換したメタデータをどこにどの名前で配置するかを決めることができます。上記の例では、パスを指定せずに作成されるフォルダ名だけ指定しています。結果として、プロジェクトの最上位にdeploymentfolderというフォルダが作成されます(下図参照)。
また変換元のソースを指定したい場合は、--sourcepath コマンドが使えます
例:sfdx force:source:convert --sourcepath force-app/dir1
2. (任意)デプロイをテストするためのスクラッチ組織を作成する
いきなり本番組織にメタデータをデプロイするのが怖いという方のために、まずスクラッチ組織でテストしてみます。普段のsfdx force:source:push
を使った方法ではなくメタデータAPIを使ったデプロイを試してみます。
今回は例として以下のコマンドで組織を作成します。
sfdx force:org:create -f project-scratch-def.json -a ScratchToDeploy
3. メタデータAPIを使用して組織にデプロイする
最後にデプロイです。今回の例だと、デプロイコマンドは以下の通りになります。
sfdx force:mdapi:deploy -d deploymentfolder -u ScratchToDeploy
適宜、ディレクトリ名とユーザ名は変更ください。
リリースが成功したかどうかは、sfdx force:mdapi:deploy:report
からも確認できますし、組織上から「設定>リリース状況」でもUIで確認できます。
感想
第一世代管理パッケージであってもスクラッチ組織で開発・リリースができるようになると、より安全に素早く開発ができそうです。