Looker IDE 支持为您的项目文件创建文件夹。IDE 的左侧导航窗格中会显示文件夹。如果您的 Looker 开发者尚未将您的项目文件整理到文件夹中,您的项目将采用扁平化文件结构,并且文件浏览器面板中按字母顺序列出文件。
如果要将项目整理到文件夹中,请参阅本页面的使用 IDE 文件夹整理现有项目部分,获取相关建议。
在下面的示例中,开发者为不同类型的项目文件(例如 explores
、models
和 views
)添加了文件夹:
您可以使用键盘快捷键 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.explore
或flights.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 对象和文件夹命名时,最好始终使用小写字母。如需了解文件和文件夹的命名限制和指南,请参阅命名惯例。
要创建文件夹,请执行以下操作:
- 从相应菜单中选择创建文件夹选项:
- 要在目录结构的顶层创建新文件夹,请使用文件浏览器面板顶部的 + 菜单。
- 如需在现有文件夹下创建新的子文件夹,请使用现有文件夹的三点状菜单。
- 输入新文件夹的名称。
- 点击创建。
新文件夹会添加到导航窗格中。
创建文件
如果您的 Looker 管理员启用了改进的 LookML 生成实验室功能,则除了此处列出的选项外,文件浏览器面板顶部的 + 菜单还会显示从数据库生成 LookML 选项。
如需在 LookML 项目中创建新文件,请执行以下操作:
选择相应的菜单:
- 如需在目录结构顶层创建新文件,请使用文件浏览器面板顶部的 + 菜单。
- 要在现有文件夹下创建新文件,请使用现有三点状菜单创建文件夹。
选择您要创建的 LookML 文件的类型。您可以创建以下类型的文件:
*
项目清单文件只能通过 Looker IDE 中文件浏览器顶部的 + 图标创建,并且仅当项目尚不具有清单文件时才能创建。这是因为一个项目只能有一个清单文件,并且清单文件必须位于项目的根目录结构下。**
创建语言区域字符串文件选项只能通过 Looker IDE 中文件浏览器顶部的 + 图标获取,但在创建(或上传)语言区域字符串文件后,您可以将文件移动到文件夹。在创建文件弹出式窗口中,输入新文件的名称。如需了解文件命名限制和指南,请参阅文件命名规范。
点击创建。新文件将会显示在创建位置。如有需要,您可以轻松将其移至其他文件夹。
创建文件后,如果您要在项目的其他 LookML 文件中引用文件中的元素,请务必使用
include
参数。如需了解详情,请参阅include
参数文档页面。
上传文件
您还可以从计算机将文件上传到您的项目。如果您在计算机上本地创建了 JSON 数据文件或 LookML 文件,这种方法会非常有用。
如需了解文件的命名限制和指南,请参阅命名惯例。
如需将文件上传到项目中,请使用 Looker IDE 中的拖放函数:
- 转到您的项目文件。
- 将文件从计算机拖到 Looker IDE 中。文件将显示在目录结构的根目录下。
- 文件上传完毕后,将该文件移至其他文件夹。
上传文件后,如果您要在项目的其他 LookML 文件中引用文件或文件中的元素,请务必使用
include
参数。如需了解详情,请参阅include
参数文档页面。
删除文件和文件夹
从项目的 IDE 左侧面板的三点状菜单中选择删除,即可删除文件夹或文件。
删除文件夹时也会删除其内容,因此删除文件夹时请务必谨慎。在删除文件夹之前,请执行以下操作:
• 在删除该文件夹之前,请确认您要删除文件夹中的文件,或将其移至其他位置。
• 验证该文件夹中是否包含项目的include
语句中引用的任何文件。请参阅本页面的将include
与 IDE 文件夹搭配使用部分,了解如何将include
与 IDE 文件夹搭配使用。
删除文件夹时,Android Studio 会显示确认弹出窗口。弹出式窗口会指定删除范围中所含内容的数量,其中包括文件夹及其中的所有文件。
移动文件夹项目中的项
您可以将单个文件或整个文件夹及其所有内容拖放到新位置:
将文件或文件夹拖放到另一文件夹中。目标文件夹无需展开即可接收其他文件夹或文件。当内容悬停在某个文件夹上时,系统会自动将其展开。
更改文件路径时,请务必更新项目中的所有
include
语句,使其与新文件路径匹配。请参阅本页面的将include
与 IDE 文件夹搭配使用部分,了解如何将include
与 IDE 文件夹搭配使用。另请注意,当您更改文件的路径时,Git 实际上会删除该文件,并用以下新的文件路径创建一个新文件。这意味着该文件的 Git 历史记录将为空,因为 Git 会将其视为新文件。若要在文件移动前查看其 Git 历史记录,请使用 Git 界面转到文件的原始位置,并从该文件中查看 Git 历史记录。(此逻辑也适用于重命名的文件,因为 Git 实际上会删除文件并创建一个名称不同的新文件。)
批量修改文件和文件夹
您还可以选择多个文件夹和文件,以便移至新位置或删除它们。
批量移动文件和文件夹
要批量移动文件夹和文件,请执行以下操作:
- 点击文件浏览器面板顶部的批量修改图标。
- 选择要移动的内容。所选文件数量在选择文件标题旁边显示为紫色。
- 要选择或取消选择相应文件,请展开相应文件夹,然后点击相应文件名旁边的复选框。
- 要选择或取消选择整个文件夹及其内容,请点击文件夹名称旁边的复选框。
- 要选择目录列表的整个部分,请使用 Shift 键并点击。点击范围顶部项目的复选框,然后按住 Shift 键并点击列表中最后一项对应的复选框。系统会同时选择其中的内容和这两者之间的所有内容。只需按住 Shift 键的同时点击某项内容,即可选择该内容及其在目录列表中的所有内容。
- 点击 Bulk Move Items(批量移动商品)文件夹图标以选择选项。然后,Android Studio 会显示文件夹选择弹出式菜单。
- 在弹出式菜单中,为所选内容选择一个文件夹,或点击新建文件夹以创建新文件夹。项目名称会在下一个菜单页面顶部显示您选择的文件夹的文件路径。要将内容移动到项目的根目录,请点击移动,但不选择文件夹。
- 点击移动以确认所选目的地,点击新建文件夹以在所选文件夹中创建新文件夹,或者点击文件路径中的项目名称链接返回主文件夹选项菜单。
- 点击选择文件标题中的 X 以退出批量修改模式。
更改文件路径后,请务必更新项目中的所有
include
语句,以匹配新的文件路径。请参阅本页面的将include
与 IDE 文件夹搭配使用部分,了解如何将include
与 IDE 文件夹搭配使用。另请注意,当您更改文件的路径时,Git 实际上会删除该文件,并用以下新的文件路径创建一个新文件。这意味着该文件的 Git 历史记录将为空,因为 Git 会将其视为新文件。若要在文件移动前查看其 Git 历史记录,请使用 Git 界面转到文件的原始位置,并从该文件中查看 Git 历史记录。(此逻辑也适用于重命名的文件,因为 Git 实际上会删除文件并创建一个名称不同的新文件。)
批量删除文件和文件夹
要批量删除文件夹和文件,请按以下步骤操作:
删除文件夹会删除其中的所有内容。在删除文件夹之前,请确认您要删除文件夹中的文件。如果您希望保留它们,请在删除该文件夹之前,将文件移动到其他位置。
- 点击文件浏览器面板顶部的批量修改图标。
- 选择要删除的项。所选文件数量在选择文件标题旁边显示为紫色。
- 要选择或取消选择相应文件,请展开相应文件夹,然后点击相应文件名旁边的复选框。
- 要选择或取消选择整个文件夹及其内容,请点击文件夹名称旁边的复选框。
- 要选择目录列表的整个部分,请使用 Shift 键并点击。点击范围顶部项目的复选框,然后按住 Shift 键并点击列表中最后一项对应的复选框。系统会同时选择其中的内容和这两者之间的所有内容。只需按住 Shift 键的同时点击某项内容,即可选择该内容及其在目录列表中的所有内容。
- 点击删除商品垃圾桶图标。然后,Android Studio 将显示一个列出所选项目的弹出式菜单。
- 点击是、删除以确认删除的内容,或点击取消返回内容选择部分。
- 点击选择文件标题中的 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 历史记录。
所有开发者都推送了变更并暂停了所有项目后,您便可以将项目迁移到新的目录结构。
指定一位开发者来完成以下所有步骤:
- 验证所有开发分支上的所有更新是否已部署到生产环境。这包括执行迁移到 IDE 文件夹的开发者的开发分支。
- 验证所有其他开发者是否已停止对项目进行更改。
- 从生产环境中拉取。
- 创建项目的文件夹。
- 将项目文件移至文件夹(一次一个文件,或使用批量修改)。
- 验证项目的 LookML。预计您会有多个 LookML 错误和警告,因为
include
和map_layer
语句使用可能在此过程中被移动的文件位置的引用。 更新项目中的所有
include
和map_layer
语句,以匹配文件的新路径。此外,您可能会发现引用的对象因其文件路径已更改而无法再出现的 LookML 验证错误。如需了解如何将include
与 IDE 文件夹搭配使用,请参阅本页面中的将include
与 IDE 文件夹搭配使用部分;如需将地图图层与 IDE 文件夹搭配使用,请参阅本页面中的将map_layer
与 IDE 文件夹搭配使用部分。实用提示:您可以使用通配符为 LookML 验证警告和由
include
语句引起的错误创建临时修复。以视图文件为例,您可以指定include: "/**/*.view"
以包括所有项目文件夹中的所有文件。这样可以防止您在继续开发时遇到 LookML 验证问题。但从长远来看,我们不建议使用此解决方案,因为添加的文件数量超出所需数量会影响性能。提交更改。
请告知其他 Looker 开发者,他们现在可以从生产环境中拉取更新并继续在项目中进行开发。