如何删除未出现在force:org:list中的Salesforce Scratch Org
可以通过Scratch Org的ORG ID删除这些隐藏实例,也可以直接操作Dev Hub中存储的ScratchOrgInfo关联记录完成删除,无需本地持有对应Scratch Org的授权配置
操作步骤
方法1:通过已查询到的ScratchOrgInfo记录删除
- 从你之前执行的SOQL查询结果中,提取状态为Active的、未出现在
sfdx force:org:list结果中的记录的Id字段值(该值为Dev Hub中ScratchOrgInfo对象的记录ID,前缀通常为2SR) - 确保当前SFDX的默认操作环境为对应的Dev Hub,执行以下命令删除记录,后台会自动销毁关联的Scratch Org并释放名额:
sfdx force:data:record:delete -s ScratchOrgInfo -i [替换为提取的ScratchOrgInfo记录ID]
无需二次确认可追加--noprompt参数。
- 删除完成后重新执行SOQL查询验证,对应记录状态会更新为
Deleted,此时即可正常创建新的Scratch Org。
方法2:通过Scratch Org的ORG ID删除
如果你只持有隐藏Scratch Org的ORG ID,可先通过SOQL查询到对应的ScratchOrgInfo记录ID再执行删除:
- 执行查询命令获取关联记录ID:
sfdx force:data:soql:query --query "SELECT Id FROM ScratchOrgInfo WHERE ScratchOrg = '替换为你持有的Scratch Org ID'"
- 用查询到的
Id值执行方法1中的删除命令即可。
报错原因说明
执行sfdx force:org:delete时报找不到Org配置的错误,是因为这些隐藏的Scratch Org从未在你当前使用的SFDX环境中完成过授权,本地没有存储对应的鉴权信息,因此无法通过用户名/本地别名执行删除操作,直接操作Dev Hub的关联记录是最高效的解决方案。
内容的提问来源于stack exchange,提问作者José C.
相关产品推荐
相关产品推荐

