3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SalesforceAdvent Calendar 2024

Day 11

Salesforce組織のメタデータを全部抜く

Last updated at Posted at 2024-12-16

12月初旬の更新をすっかり忘れていて、無資格開発者となりました。ブラック〇ャックみたいな気持ちで頑張っています。

さて、Salesforceのバックアップって、運用者・開発者の大きな悩みの一つだと思いますが、今回はメタデータのバックアップについてです。
昔からできていたのかもしれませんが、Salesforce CLIにてそれなりに簡単にメタデータがごそっと抜けるようになっています。

手順としては、マニフェストを作った後に、そのマニフェストを使ってメタデータを読み取るだけの話です。
使用するsfコマンドはsf project generate manifestでございます。
--from-orgというオプションが、メタデータの目録であるpackage.xml作ってくれるので、数分待ちましょう。

> sf project generate manifest --output-dir ./manifest --from-org <orgname/alias>`
successfully wrote package.xml to ./manifest

わぁ、全部抜けちゃうかもというワクワクを噛み締めながら、よーし全部読みこんじゃうぞ!と次のステップに進みましょう。
使用するsfコマンドはいつもお世話になっておりますsf project retrieve start です。このstartって冗長に感じるのは、僕の英語火力不足に違いない。
--zip-file-nameオプションはお好みで…

> sf project:start:retrieve -o <orgname/alias> -x .\manifest\package.xml -t .\manifest --zip-file-name metadata.zip
Retrieving v62.0 metadata from <orgname/alias> using the v62.0 SOAP API
Preparing retrieve request... Succeeded
Wrote retrieve zip file to \manifest\metadata.zip.

これでメタデータのバックアップは完了です。全部抜けたはずのメタデータをスクラッチ組織になどにデプロイしてみて初めてバックアップができたことになりますが、一発でデプロイできることはないので、まごころを込めてデプロイを試してみましょう。その辺のTipsめいたものは(時間が足りないので)またの機会にします。

と、あんまり大きくないSalesforce組織の場合は、単純な話ではありますね…

sf project retrieve startの読み込み件数は1万件未満にしないといけないらしい

試行した案件の対象組織では大量のレポートが存在したようで、package.xml内のメタデータは1万件を軽く超えていました。

> sf project:start:retrieve -o <orgname/alias> -x .\manifest\package.xml -t .\manifest --zip-file-name metadata.zip
Retrieving v62.0 metadata from <orgname/alias> using the v62.0 SOAP API
Preparing retrieve request... Failed
Error (LIMIT_EXCEEDED): LIMIT_EXCEEDED: Too many files in retrieve call, limit is: 10000

まごころを込めてpackage.xmlを手動で分割、それぞれの読み込めば大丈夫です。

sf project retrieve startsfdx-project.jsonに定義したAPIバージョンで抜いてくる

オプションでも制御できるように思うのですが、sfdx-project.jsonを最新にしておくとよいように思います。Salesforce CLIにて抜いてくるメタデータの形式はAPIバージョン間で破壊的変更が結構見受けられると感じています。

ExperienceBundleは組織側の設定で有効化することが必要

組織の設定で有効にしないと抜けなかったりです。ExperienceCloudサイトをお持ちの方はご注意くださいませ。

image.png

マニフェストを作くるのは凄い簡単でしたが、読み込みとデプロイはひとつづつ丁寧に解いていくしかないし、Stack Overflowには足を向けて寝れなくなります。

この記事は、Salesforce Advent Calendar 2024の11日目に投稿するつもりだったものです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?