本页面介绍了如何在 Looker 中排查“Project with that name already exists”(已存在具有该名称的项目)错误。当您尝试创建名称已被其他项目使用的新项目时,即使该项目在界面中不可见,也可能会发生此错误。此错误通常是因为项目残留(通常位于 Git 分支或服务器文件系统中)仍然存在而发生的。
问题排查树
使用以下决策树来排查此错误。在新标签页中打开决策树以放大。
问题排查步骤
以下部分将更详细地介绍树中的场景。
第 1 步:检查开发分支
项目的残留可能存在于一个或多个开发分支中。如需检查开发分支,请按以下步骤操作:
- 开启开发模式。
- 前往 LookML 项目,并检查每个开发分支(尤其是个人分支)中是否存在名称冲突的项目。
- 如果您找到名称冲突的项目,请在 IDE 中删除该项目,提交更改,然后部署到生产环境以移除残留的 Git 引用。
第 2 步:重置 Git 连接
重置 Git 连接可以强制清理本地代码库不一致问题。如需重置 Git 连接,请按以下步骤操作:
- 前往项目的项目设置 。
- 在配置 标签页上,选择 Reset Git Connection (重置 Git 连接)。
- 重新输入 Git 网址。如果您使用的是 SSH,请将新的部署密钥上传到 Git 提供商。
第 3 步:检查待处理项目
模型可能已使用项目名称进行配置,但项目本身从未生成。这将创建一个待处理项目。 如需检查待处理项目,请按以下步骤操作:
- 开启开发模式。
- 查看 LookML 项目 页面。
- 检查待处理项目 部分。如果存在名称冲突的项目,请删除待处理的模型配置。
第 4 步:服务器端解决方案(仅限裸代码库)
如果您的 Looker 实例使用裸 Git 代码库(客户托管),则文件可能会保留在服务器上。如需清理服务器上的文件,请登录 Looker 宿主服务器,并手动重命名或删除与项目关联的裸代码库文件夹:
- 重命名或删除目录:
~/models/YOUR_PROJECT_TO_DELETE - 重命名或删除裸代码库目录:
~/bare_models/YOUR_PROJECT_TO_DELETE.git
第 5 步:使用 Looker API 删除项目
如果上述步骤无法解决此错误,您可以使用 Looker API 手动删除项目以强制执行内部清理。此方法使用 4.0 API 端点,并且需要 Looker 管理员权限。
1. 获取访问令牌
使用您的 API 凭据(客户端 ID 和密钥 )获取不记名令牌。
curl -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET" https://INSTANCE_HOSTNAME.cloud.looker.com/api/4.0/login
响应将包含 access_token。
2. 将会话切换到开发模式
您必须在开发模式下删除项目。切换到开发模式会更改 API 会话上下文。
curl -X PATCH "https://INSTANCE_HOSTNAME.cloud.looker.com/api/4.0/session" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer BEARER_TOKEN" \
-d '{"workspace_id": "dev"}'
3. 删除项目
会话处于开发模式后,使用 DELETE /projects/{project_id} 端点删除项目。
curl -X DELETE "https://INSTANCE_HOSTNAME.cloud.looker.com/api/4.0/projects/PROJECT_ID_TO_DELETE" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer BEARER_TOKEN"
成功调用将返回空响应 (204 No Content) 或成功删除消息。现在,您应该能够在 Looker 界面中重新创建项目。
您还可以使用 Postman 等 API 工具执行这些 API 调用。
最终审核和支持
如果这些问题排查步骤无法解决此错误,请与支持团队联系以进一步排查问题。