在 IDE 中处理文件夹

Looker IDE 支持为您的项目文件创建文件夹。IDE 的左侧导航窗格中会显示文件夹。如果您的 Looker 开发者尚未将您的项目文件整理到文件夹中,您的项目将采用扁平化文件结构,并且文件浏览器面板中按字母顺序列出文件。

如果要将项目整理到文件夹中,请参阅本页面的使用 IDE 文件夹整理现有项目部分,获取相关建议。

在下面的示例中,开发者为不同类型的项目文件(例如 exploresmodelsviews)添加了文件夹:

您可以使用键盘快捷键 Command-B (Mac) 或 Ctrl+B (Windows) 或点击文件浏览器图标来显示或隐藏 IDE 文件浏览器:

点击 File Browser(文件浏览器)面板顶部工具栏中的图标,以收起所有文件夹、执行批量修改搜索项目文件或创建新文件夹新文件

左侧面板中的每个文件或文件夹都包含一个菜单,其中显示可对相应内容执行的操作。点击文件名右侧的三点状菜单,打开菜单。对于名称较长或嵌套在多个文件夹中的项目,您可以通过滚动左侧面板访问该菜单:

使用文件夹整理 LookML 文件时,您需要提交更改将其部署到生产环境中,然后其他 Looker 开发者才能看到它们。这就像您对 LookML 项目所做的任何更改一样。

导入的项目文件夹

如果您导入项目,Looker IDE 会自动创建一个 imported_projects 文件夹。本地项目远程项目中的文件都列在 imported_projects 文件夹中。点击导入的项目文件即可查看其内容:

由于无法修改 IDE 中的文件,因此导入的项目文件不可见。

管理文件和文件夹

文件和文件夹命名惯例

创建文件和文件夹时,请注意以下几点:

  • LookML 区分大小写。命名文件夹时,请务必遵循项目的惯例。例如,如果您的惯例是在项目中使用全部小写字母,则需要将文件夹命名为 views,而不是 Views。尤其是当需要指定文件路径时(例如包含文件时)。一般而言,为 LookML 对象和文件夹命名时,最好始终使用小写字母。
  • 文件名不能包含空格或以下任何字符:/ ? * : | " < > %
  • 通过 Looker 创建 LookML 文件时,如果您不手动添加扩展程序,Looker 会自动在文件名末尾添加 .lkml 扩展名。例如,如果您输入文件名 flights_data_tests,Looker 会将文件命名为 flights_data_tests.lkml
  • 要创建“探索”文件,该文件的文件名末尾必须具有 .explore.lkml 扩展名。如果您要上传文件,必须使用完整的 .explore.lkml 扩展名。如果您通过 Generic LookML files 选项使用 Looker IDE 创建文件,那么当扩展名不存在时,Looker 会在文件名末尾添加 .lkml,但您仍必须手动将扩展名的 .explore 部分添加到文件名中。例如,如需使用 Looker IDE 创建名为 flights 的探索文件,您可以输入 flights.exploreflights.explore.lkml,该文件将命名为 flights.explore.lkml
  • 建议您使用 Looker IDE 向 LookML 项目添加文件,方法是在 Looker IDE 中创建文件在 Looker IDE 中上传文件。如果您改为在 Looker IDE 之外创建文件,然后使用 Looker 提取(生产分支),请务必使用正确的命名规范,并在文件名中添加 .lkml 扩展名(对于探索文件,请添加 explore.lkml 扩展名)。如果文件名包含不受支持的字符,Looker IDE 文件浏览器会以红色显示文件名,而且在您使用支持的字符重命名文件之前,您无法看到文件的内容。此外,如果文件没有 .lkml 扩展名,Looker IDE 将完全不显示该文件。

创建文件夹

您可以针对不同的文件类型(例如查看文件模型文件)创建文件夹。您甚至可以创建子文件夹,如果您想include部分视图,这会非常有用。

创建文件夹时,请注意 LookML 区分大小写。命名文件夹时,请务必遵循项目的惯例。例如,如果您的惯例是在项目中使用全部小写字母,则需要将文件夹命名为 views,而不是 Views。尤其是当需要指定文件路径时(例如包含文件时)。一般而言,为 LookML 对象和文件夹命名时,最好始终使用小写字母。如需了解文件和文件夹的命名限制和指南,请参阅命名惯例

要创建文件夹,请执行以下操作:

  1. 从相应菜单中选择创建文件夹选项:
    • 要在目录结构的顶层创建新文件夹,请使用文件浏览器面板顶部的 + 菜单。
    • 如需在现有文件夹下创建新的子文件夹,请使用现有文件夹的三点状菜单。
  2. 输入新文件夹的名称。
  3. 点击创建

新文件夹会添加到导航窗格中。

创建文件

如果您的 Looker 管理员启用了改进的 LookML 生成实验室功能,则除了此处列出的选项外,文件浏览器面板顶部的 + 菜单还会显示从数据库生成 LookML 选项。

如需在 LookML 项目中创建新文件,请执行以下操作:

  1. 选择相应的菜单:

    • 如需在目录结构顶层创建新文件,请使用文件浏览器面板顶部的 + 菜单。
    • 要在现有文件夹下创建新文件,请使用现有三点状菜单创建文件夹。
  2. 选择您要创建的 LookML 文件的类型。您可以创建以下类型的文件:

    * 项目清单文件只能通过 Looker IDE 中文件浏览器顶部的 + 图标创建,并且仅当项目尚不具有清单文件时才能创建。这是因为一个项目只能有一个清单文件,并且清单文件必须位于项目的根目录结构下。
    ** 创建语言区域字符串文件选项只能通过 Looker IDE 中文件浏览器顶部的 + 图标获取,但在创建(或上传)语言区域字符串文件后,您可以将文件移动到文件夹

  3. 创建文件弹出式窗口中,输入新文件的名称。如需了解文件命名限制和指南,请参阅文件命名规范

  4. 点击创建。新文件将会显示在创建位置。如有需要,您可以轻松将其移至其他文件夹

创建文件后,如果您要在项目的其他 LookML 文件中引用文件中的元素,请务必使用 include 参数。如需了解详情,请参阅 include 参数文档页面。

上传文件

您还可以从计算机将文件上传到您的项目。如果您在计算机上本地创建了 JSON 数据文件或 LookML 文件,这种方法会非常有用。

如需了解文件的命名限制和指南,请参阅命名惯例

如需将文件上传到项目中,请使用 Looker IDE 中的拖放函数:

  1. 转到您的项目文件
  2. 将文件从计算机拖到 Looker IDE 中。文件将显示在目录结构的根目录下。
  3. 文件上传完毕后,将该文件移至其他文件夹

上传文件后,如果您要在项目的其他 LookML 文件中引用文件或文件中的元素,请务必使用 include 参数。如需了解详情,请参阅 include 参数文档页面。

删除文件和文件夹

从项目的 IDE 左侧面板的三点状菜单中选择删除,即可删除文件夹或文件。

删除文件夹时也会删除其内容,因此删除文件夹时请务必谨慎。在删除文件夹之前,请执行以下操作:
在删除该文件夹之前,请确认您要删除文件夹中的文件,或将其移至其他位置。
验证该文件夹中是否包含项目的 include 语句中引用的任何文件。请参阅本页面的include 与 IDE 文件夹搭配使用部分,了解如何将 include 与 IDE 文件夹搭配使用。

删除文件夹时,Android Studio 会显示确认弹出窗口。弹出式窗口会指定删除范围中所含内容的数量,其中包括文件夹及其中的所有文件。

移动文件夹项目中的项

您可以将单个文件或整个文件夹及其所有内容拖放到新位置:

将文件或文件夹拖放到另一文件夹中。目标文件夹无需展开即可接收其他文件夹或文件。当内容悬停在某个文件夹上时,系统会自动将其展开。

更改文件路径时,请务必更新项目中的所有 include 语句,使其与新文件路径匹配。请参阅本页面的include 与 IDE 文件夹搭配使用部分,了解如何将 include 与 IDE 文件夹搭配使用。

另请注意,当您更改文件的路径时,Git 实际上会删除该文件,并用以下新的文件路径创建一个新文件。这意味着该文件的 Git 历史记录将为空,因为 Git 会将其视为新文件。若要在文件移动前查看其 Git 历史记录,请使用 Git 界面转到文件的原始位置,并从该文件中查看 Git 历史记录。(此逻辑也适用于重命名的文件,因为 Git 实际上会删除文件并创建一个名称不同的新文件。)

批量修改文件和文件夹

您还可以选择多个文件夹和文件,以便移至新位置或删除它们。

批量移动文件和文件夹

要批量移动文件夹和文件,请执行以下操作:

  1. 点击文件浏览器面板顶部的批量修改图标。
  2. 选择要移动的内容。所选文件数量在选择文件标题旁边显示为紫色。
    • 要选择或取消选择相应文件,请展开相应文件夹,然后点击相应文件名旁边的复选框。
    • 要选择或取消选择整个文件夹及其内容,请点击文件夹名称旁边的复选框。
    • 要选择目录列表的整个部分,请使用 Shift 键并点击。点击范围顶部项目的复选框,然后按住 Shift 键并点击列表中最后一项对应的复选框。系统会同时选择其中的内容和这两者之间的所有内容。只需按住 Shift 键的同时点击某项内容,即可选择该内容及其在目录列表中的所有内容。
  3. 点击 Bulk Move Items(批量移动商品)文件夹图标以选择选项。然后,Android Studio 会显示文件夹选择弹出式菜单。
  4. 在弹出式菜单中,为所选内容选择一个文件夹,或点击新建文件夹以创建新文件夹。项目名称会在下一个菜单页面顶部显示您选择的文件夹的文件路径。要将内容移动到项目的根目录,请点击移动,但不选择文件夹。
  5. 点击移动以确认所选目的地,点击新建文件夹以在所选文件夹中创建新文件夹,或者点击文件路径中的项目名称链接返回主文件夹选项菜单。
  6. 点击选择文件标题中的 X 以退出批量修改模式。

更改文件路径后,请务必更新项目中的所有 include 语句,以匹配新的文件路径。请参阅本页面的include 与 IDE 文件夹搭配使用部分,了解如何将 include 与 IDE 文件夹搭配使用。

另请注意,当您更改文件的路径时,Git 实际上会删除该文件,并用以下新的文件路径创建一个新文件。这意味着该文件的 Git 历史记录将为空,因为 Git 会将其视为新文件。若要在文件移动前查看其 Git 历史记录,请使用 Git 界面转到文件的原始位置,并从该文件中查看 Git 历史记录。(此逻辑也适用于重命名的文件,因为 Git 实际上会删除文件并创建一个名称不同的新文件。)

批量删除文件和文件夹

要批量删除文件夹和文件,请按以下步骤操作:

删除文件夹会删除其中的所有内容。在删除文件夹之前,请确认您要删除文件夹中的文件。如果您希望保留它们,请在删除该文件夹之前,将文件移动到其他位置

  1. 点击文件浏览器面板顶部的批量修改图标。
  2. 选择要删除的项。所选文件数量在选择文件标题旁边显示为紫色。
    • 要选择或取消选择相应文件,请展开相应文件夹,然后点击相应文件名旁边的复选框。
    • 要选择或取消选择整个文件夹及其内容,请点击文件夹名称旁边的复选框。
    • 要选择目录列表的整个部分,请使用 Shift 键并点击。点击范围顶部项目的复选框,然后按住 Shift 键并点击列表中最后一项对应的复选框。系统会同时选择其中的内容和这两者之间的所有内容。只需按住 Shift 键的同时点击某项内容,即可选择该内容及其在目录列表中的所有内容。
  3. 点击删除商品垃圾桶图标。然后,Android Studio 将显示一个列出所选项目的弹出式菜单。
  4. 点击是、删除以确认删除的内容,或点击取消返回内容选择部分。
  5. 点击选择文件标题中的 X 以退出批量修改模式。

include 与 IDE 文件夹搭配使用

将项目文件整理到文件夹中后,您需要在使用 include 语句时提供文件的路径。

使用 include 时,请注意 LookML 区分大小写。指定文件的路径时,必须与路径和路径中的文件夹名称相匹配。例如,如果您的文件位于 Views 文件夹中,则必须在 include 参数中匹配此大写形式。因此,您应指定 include: "/Views/accidents.view"。一般来说,给 LookML 对象和文件夹命名时最好使用小写形式。

您可以在 include 语句中使用绝对路径或相对路径(如需查看示例,请参阅本页面的路径语法部分);也可使用通配符 *** 一次添加多个文件(如需查看示例,请参阅本页面上的通配符示例部分)。

例如,如果您在项目中使用以下目录结构:

以下语句将包含 products 视图、order_facts 视图以及 /views/users/ 目录中的所有视图:

include: "/views/products.view"
include: "/views/orders/order_facts.view"
include: "/views/users/*.view"

更改文件路径时,请务必更新项目中的所有 include 语句,使其与文件的新路径匹配。如果旧 include 语句不再引用现有文件或文件路径,您可能会看到 LookML 验证警告。此外,您可能会发现引用的对象因其文件路径已更改而无法再出现的 LookML 验证错误。

实用提示:使用通配符时,您可将鼠标悬停在文件信息行旁边的信息图标上,也可点击 include 语句并寻求快速帮助,从而查看包括哪些文件:

便捷提示:您可以通过从 Looker IDE 的“文件”三点状菜单中选择复制文件路径来复制文件的路径:

路径语法

以下是一些可用于添加文件的语法示例:

语法 说明
PATH 从当前文件位置开始的相对路径。
./PATH 从当前文件位置开始的相对路径。此示例指向与上述示例相同的文件:PATH
../PATH 从当前文件的父目录开始的相对路径。
/PATH 从当前项目的根目录开始的绝对路径。
//PROJECT_NAME/PATH 从名为 PROJECT_NAME导入的项目的根目录开始的绝对路径。

通配符示例

如果您使用的是 LookML 优化,请勿在包含内容中使用通配符。LookML 优化会利用包含内容的顺序,并且在包含内容中使用通配符不允许您控制每个文件的包含顺序。如需详细了解优化,请参阅 LookML 优化文档页面。

下面是使用通配符的一些示例(请注意,您可以将 PATH 替换为上表中的路径语法):

语法 说明
PATH/*.view .view 结尾且位于 PATH 的通配符匹配文件。
PATH/*.view.lkml .view.lkml 结尾且位于 PATH 的通配符匹配文件。

由于视图文件的扩展名为 .view.lkml,因此此示例指定的文件与上一个示例 PATH/*.view 相同。IDE 中不会显示 .lkml 部分,include 语句也需要 .lkml 部分。不过,您可以使用通配符来充分利用文件扩展名。如需查看项目文件扩展名列表,请参阅 LookML 项目文件文档页面。
PATH/*.lkml .lkml 结尾且位于 PATH 的通配符匹配文件。

请注意,有几种文件类型的文件扩展名是 .lkml,例如 .view.lkml.model.lkml。IDE 中不会显示 .lkml 部分,include 语句也需要 .lkml 部分。不过,您可以使用通配符来充分利用文件扩展名。如需查看项目文件扩展名列表,请参阅 LookML 项目文件文档页面。
PATH/myfile.* 名为 myfile 的通配符文件,其扩展名为 PATH
PATH/myfile.*.lkml PATH 有任意.lkml扩展名类型的名为 myfile 的通配符匹配文件。
PATH/my*file.view my 开头并以 PATH 结尾且以 file.view 结尾的通配符匹配文件。
PATH/my*fi*le.view 匹配文件的起始通配符以 my 开头,后跟一些字符,然后是 fi,再是一些其他字符,最后是 PATH 处的 le.view
PATH/*/myfile.lkml 文件夹名称通配符(仅匹配单层嵌套)。匹配 PATH 的任何直接子目录中的所有 myfile.lkml 文件。
PATH/**/my_file.view 对所有位于 PATH 下名为 my_file.view.lkml 的文件以及所有子目录的递归通配符匹配(匹配任意数量的嵌套)。
PATH/**/*.view PATH 的子目录中匹配以 .view.lkml 结尾的所有文件的递归通配符。
PATH/**/my_folder/myfile.view PATH 下任意深度的子路径 /my_folder/myfile.view 匹配的递归通配符。

map_layer 与 IDE 文件夹搭配使用

如果为项目启用了 IDE 文件夹,则需要在为 map_layer 指定项目文件时使用文件路径:

map_layer: neighborhoods {
  file: "/maps/my_neighborhoods.json"
}

使用 IDE 文件夹整理现有项目

如果您的项目之前使用的是旧平面文件结构,您可以选择保留此结构;但如果您选择将项目文件整理到文件夹中,我们强烈建议您做好以下准备工作:

  • 提前为所有开发者规划文件结构。
  • 确保您的所有 Looker 开发者均已将其所有更新部署到生产环境。如果开发者有未部署的更改,则其分支会反映上次从生产环境中拉取文件时存在的文件结构。如果项目当时采用的是扁平化文件结构,那么开发者版本的文件将推送至原始位置,因此您将会得到该文件的两个副本。此外,如果开发者在迁移到文件夹期间取消部署更改,那么在迁移后从生产环境拉取时,开发者将面临合并冲突。
  • 与所有开发者一起执行临时代码冻结,直到项目完全迁移到新目录结构为止。
  • 指定一位开发者来移动文件。以下过程假定单个开发者会将项目迁移到 IDE 文件夹。如果您需要让多位开发者移动文件,请在开发者之间分配任务,以免合并冲突。如果遇到合并冲突,请参阅使用版本控制和部署文档页面,了解如何解决此类冲突。

请注意,在 Git 中移动文件时,您实际上是在删除文件,然后使用新文件路径创建新文件。这意味着该文件的 Git 历史记录将为空,因为 Git 会将其视为新文件。若要在文件移动前查看其 Git 历史记录,请使用 Git 界面转到文件的原始位置,并从该文件中查看 Git 历史记录。

所有开发者都推送了变更并暂停了所有项目后,您便可以将项目迁移到新的目录结构。

指定一位开发者来完成以下所有步骤:

  1. 验证所有开发分支上的所有更新是否已部署到生产环境。这包括执行迁移到 IDE 文件夹的开发者的开发分支。
  2. 验证所有其他开发者是否已停止对项目进行更改。
  3. 从生产环境中拉取
  4. 创建项目的文件夹
  5. 将项目文件移至文件夹(一次一个文件,或使用批量修改)。
  6. 验证项目的 LookML。预计您会有多个 LookML 错误和警告,因为 includemap_layer 语句使用可能在此过程中被移动的文件位置的引用。
  7. 更新项目中的所有 includemap_layer 语句,以匹配文件的新路径。此外,您可能会发现引用的对象因其文件路径已更改而无法再出现的 LookML 验证错误。如需了解如何将 include 与 IDE 文件夹搭配使用,请参阅本页面中的include 与 IDE 文件夹搭配使用部分;如需将地图图层与 IDE 文件夹搭配使用,请参阅本页面中的map_layer 与 IDE 文件夹搭配使用部分。

    实用提示:您可以使用通配符为 LookML 验证警告和由 include 语句引起的错误创建临时修复。以视图文件为例,您可以指定 include: "/**/*.view" 以包括所有项目文件夹中的所有文件。这样可以防止您在继续开发时遇到 LookML 验证问题。但从长远来看,我们不建议使用此解决方案,因为添加的文件数量超出所需数量会影响性能

  8. 提交更改

  9. 将更新部署到生产环境

  10. 请告知其他 Looker 开发者,他们现在可以从生产环境中拉取更新并继续在项目中进行开发。