Cómo trabajar con carpetas en el IDE

El IDE de Looker admite carpetas para los archivos de tu proyecto. Las carpetas se muestran en el panel de navegación izquierdo del IDE. Si los desarrolladores de Looker no organizaron los archivos del proyecto en carpetas, el proyecto tendrá una estructura de archivos plana, con los archivos ordenados alfabéticamente en el panel File Browser.

Si quieres organizar tu proyecto en carpetas, consulta la sección Cómo organizar un proyecto existente con carpetas IDE en esta página para obtener recomendaciones.

A continuación, se muestra un proyecto de ejemplo en el que un desarrollador agregó carpetas para diferentes tipos de archivos de proyecto, como explores, models y views:

Puedes ocultar o mostrar el navegador de archivos del IDE con la combinación de teclas Comando-B (Mac) o Ctrl+B (Windows) o al hacer clic en el ícono del navegador de archivos:

Haz clic en los íconos de la barra de herramientas que se encuentran en la parte superior del panel Navegador de archivos para contraer todas las carpetas, realizar ediciones masivas, buscar un archivo de proyecto o crear nuevas carpetas y nuevos archivos:

Cada archivo o carpeta del panel lateral izquierdo tiene un menú que muestra las acciones disponibles para ese elemento. Haga clic en el menú de tres puntos que se encuentra a la derecha del nombre del archivo para abrirlo. Para un elemento que tiene un nombre largo o que está anidado en varias carpetas, puedes acceder al menú desplazándote en el panel izquierdo:

A medida que organizas tus archivos LookML con carpetas, debes confirmar los cambios y, luego, implementarlos en producción para que otros desarrolladores de Looker puedan verlos. Esto es como cualquier cambio que hagas en tu proyecto de LookML.

Carpeta de proyectos importados

Si importas un proyecto, el IDE de Looker crea automáticamente una carpeta imported_projects. Los archivos de proyectos locales y proyectos remotos se enumeran en la carpeta imported_projects. Haz clic en un archivo de proyecto importado para ver su contenido:

Dado que no se pueden editar, los archivos de proyecto importados no son visibles cuando editas archivos de forma masiva en el IDE.

Administra archivos y carpetas

Convenciones de nombres de archivos y carpetas

Cuando crees archivos y carpetas, ten en cuenta lo siguiente:

  • LookML distingue mayúsculas de minúsculas. Asegúrate de cumplir con las convenciones de tu proyecto cuando asignes nombres a tus carpetas. Por ejemplo, si tu convención es usar todas las letras minúsculas en tu proyecto, debes nombrar la carpeta views en lugar de Views. Esto marca una diferencia, en especial cuando necesita especificar una ruta de acceso de un archivo, como cuando incluye archivos. Por lo general, es una buena idea usar letras minúsculas de manera coherente cuando nombras objetos y carpetas de LookML.
  • Los nombres de archivo no pueden incluir espacios ni ninguno de los siguientes caracteres: / ? * : | " < > %
  • Cuando crees archivos LookML con el IDE de Looker, Looker agregará automáticamente la extensión .lkml al final del nombre del archivo si no la incluye manualmente. Por ejemplo, si ingresas el nombre de archivo flights_data_tests, Looker le asignará el nombre flights_data_tests.lkml.
  • Para crear un archivo Explorar, este debe tener la extensión .explore.lkml al final del nombre de archivo. Si subes el archivo, debes usar la extensión .explore.lkml completa. Si usas el IDE de Looker para crear el archivo mediante la opción Archivos genéricos de LookML, Looker agregará .lkml al final del nombre del archivo si la extensión no está presente, pero debes agregar manualmente la parte .explore de la extensión al nombre del archivo. Por ejemplo, para crear un archivo Explorar llamado flights con el IDE de Looker, puedes ingresar flights.explore o flights.explore.lkml, y el archivo se llamará flights.explore.lkml.
  • Se recomienda que use el IDE de Looker para agregar archivos a su proyecto de LookML, ya sea mediante la creación en el IDE de Looker o la carga en el IDE de Looker. Si, en cambio, creas archivos fuera del IDE de Looker y, luego, usas el IDE de Looker para extraer de (rama de producción), asegúrate de usar las convenciones de nombre correctas y de incluir la extensión .lkml en el nombre del archivo (o explore.lkml para los archivos Explorar). Si un nombre de archivo incluye caracteres no compatibles, el navegador de archivos del IDE de Looker mostrará el nombre del archivo en rojo y usted no podrá ver el contenido del archivo hasta que cambie el nombre del archivo con caracteres compatibles. Además, el IDE de Looker no mostrará el archivo si no tiene la extensión .lkml.

Crea carpetas

Puedes crear carpetas para diferentes tipos de archivos (como archivos de vista o archivos de modelo). Incluso puedes crear subcarpetas, lo que es muy útil si deseas include un subconjunto de tus vistas.

Cuando crees carpetas, ten en cuenta que LookML distingue mayúsculas de minúsculas. Asegúrate de cumplir con las convenciones de tu proyecto cuando asignes nombres a tus carpetas. Por ejemplo, si tu convención es usar todas las letras minúsculas en tu proyecto, debes nombrar la carpeta views en lugar de Views. Esto marca una diferencia, en especial cuando necesita especificar una ruta de acceso de un archivo, como cuando incluye archivos. Por lo general, es una buena idea usar letras minúsculas de manera coherente cuando nombras objetos y carpetas de LookML. Consulta las convenciones de nomenclatura a fin de obtener información sobre las limitaciones y los lineamientos para asignar nombres a tus archivos y carpetas.

Para crear una carpeta, haz lo siguiente:

  1. Selecciona la opción Crear carpeta del menú correspondiente:
    • Para crear una carpeta nueva en el nivel superior de la estructura de directorios, usa el menú + en la parte superior del panel Navegador de archivos.
    • Para crear una subcarpeta nueva en una carpeta existente, usa el menú de tres puntos de esa carpeta.
  2. Ingresa un nombre para la carpeta nueva.
  3. Haz clic en Crear.

La nueva carpeta se agrega al panel de navegación.

Creación de archivos

Si el administrador de Looker habilitó la función de labs de generación mejorada de LookML, el menú + en la parte superior del panel Navegador de archivos mostrará una opción para generar LookML desde la base de datos, además de las opciones que se mencionan aquí.

Para crear un archivo nuevo en tu proyecto de LookML, haz lo siguiente:

  1. Selecciona el menú adecuado:

    • Para crear un archivo nuevo en el nivel superior de la estructura de su directorio, use el menú + en la parte superior del panel Navegador de archivos.
    • Para crear un archivo nuevo en una carpeta existente, usa el menú de tres puntos de la carpeta existente.
  2. Selecciona el tipo de archivo LookML que deseas crear. Puedes crear los siguientes tipos de archivos:

    * Los archivos de manifiesto del proyecto solo se pueden crear desde el ícono + en la parte superior del navegador de archivos del IDE de Looker y solo si el proyecto ya no tiene un archivo de manifiesto. Esto se debe a que un proyecto solo puede tener un archivo de manifiesto y este debe estar ubicado en el nivel raíz de la estructura de directorios del proyecto.
    ** La opción Crear archivo de strings de configuración regional solo está disponible desde el ícono + en la parte superior del navegador de archivos del IDE de Looker. Sin embargo, una vez que se crea (o se sube un archivo) de configuración regional, puedes mover el archivo a una carpeta.

  3. En la ventana emergente Crear archivo, ingresa un nombre para el archivo nuevo. Consulte las convenciones para asignar nombres a archivos a fin de conocer sus limitaciones y lineamientos a la hora de asignar nombres.

  4. Haz clic en Crear. El archivo nuevo se mostrará donde lo creaste. Si es necesario, puedes moverlo fácilmente a otra carpeta.

Una vez que hayas creado el archivo, asegúrate de usar el parámetro include si deseas hacer referencia a elementos del archivo en otros archivos LookML de tu proyecto. Consulta la página de documentación del parámetro include para obtener más información.

Subir archivos

También puedes subir archivos a tu proyecto desde tu computadora. Esto es útil si creaste archivos de datos JSON o archivos LookML localmente en la computadora.

Consulta las convenciones de nomenclatura a fin de obtener información sobre las limitaciones y los lineamientos para asignar nombres a tus archivos.

Para subir un archivo a tu proyecto, usa la función de arrastrar y soltar en el IDE de Looker:

  1. Navega a los archivos de tu proyecto.
  2. Arrastra el archivo desde tu computadora al IDE de Looker. El archivo se mostrará en la raíz de la estructura del directorio.
  3. Después de subir el archivo, mueve el elemento a otra carpeta.

Una vez que hayas subido el archivo, asegúrate de usar el parámetro include si deseas hacer referencia al archivo o a elementos del archivo en otros archivos LookML de tu proyecto. Consulta la página de documentación del parámetro include para obtener más información.

Borra archivos y carpetas

Elimina una carpeta o un archivo al seleccionar Delete en el menú de tres puntos del elemento en el panel izquierdo del IDE.

Si borras una carpeta, también se borrará su contenido. Ten cuidado cuando borres carpetas. Antes de borrar una carpeta, haz lo siguiente:
Verifica que quieras borrar los archivos de la carpeta o muévelos a otra ubicación antes de borrarla.
Verifica que la carpeta no contenga los archivos a los que se hace referencia en las declaraciones include de tu proyecto. Consulta la sección Cómo usar include con carpetas de IDE en esta página para obtener información sobre el uso de include con carpetas de IDE.

Cuando borras una carpeta, el IDE muestra una ventana emergente de confirmación. La ventana emergente especifica cuántos elementos se incluyen en la eliminación, lo que incluye la carpeta y los archivos que contenga.

Mueve elementos en un proyecto en carpeta

Puedes arrastrar y soltar un solo archivo o una carpeta completa con todo su contenido en nuevas ubicaciones:

Arrastra y suelta un archivo o una carpeta en otra carpeta. No es necesario expandir la carpeta de destino para recibir otras carpetas o archivos. Una carpeta se expande automáticamente cuando se desplazan elementos sobre ella.

Cuando cambies la ruta de un archivo, asegúrate de actualizar todas las declaraciones include de tu proyecto para que coincidan con la nueva. Consulta la sección Cómo usar include con carpetas de IDE en esta página para obtener información sobre el uso de include con carpetas de IDE.

Además, ten en cuenta que cuando cambias la ruta de un archivo, Git borra el archivo y crea uno nuevo con la ruta de acceso nueva. Esto significa que el historial de Git del archivo estará vacío, ya que Git lo considera un archivo nuevo. Para ver el historial de Git del archivo antes de su traslado, usa la interfaz de Git para navegar al archivo en su ubicación original y ver el historial de Git desde allí. (La misma lógica se aplica a los archivos renombrados, ya que Git borra de manera efectiva el archivo y crea uno nuevo con un nombre diferente).

Edición masiva de archivos y carpetas

También puedes seleccionar varias carpetas y archivos para moverlos a nuevas ubicaciones o eliminarlos.

Cómo mover archivos y carpetas de forma masiva

Para mover carpetas y archivos de forma masiva:

  1. Haga clic en el ícono de Edición masiva en la parte superior del panel Navegador de archivos.
  2. Selecciona los elementos que quieras mover. La cantidad de archivos seleccionados se muestra en púrpura junto al encabezado Seleccionar archivos.
    • Para seleccionar o anular la selección de archivos individuales, expande sus carpetas y haz clic en la casilla de verificación junto a los nombres de los archivos.
    • Para seleccionar o anular la selección de carpetas completas y su contenido, haz clic en la casilla de verificación junto al nombre de la carpeta.
    • Para seleccionar una sección completa de la lista de directorios, usa mayúscula y haz clic. Haz clic en la casilla de verificación del elemento principal del rango, mantén presionada la tecla Mayús y haz clic en la casilla de verificación del último elemento de la lista. Se seleccionarán tanto elementos como todos los intermedios. También puedes simplemente presionar Mayús y hacer clic en un elemento para seleccionarlo y todo lo que aparece encima de él en la lista de directorios.
  3. Haga clic en el ícono de la carpeta Elementos de transferencia masiva para seleccionar la opción. El IDE mostrará un menú emergente de selección de carpeta.
  4. En el menú emergente, elija una carpeta para los elementos seleccionados o haga clic en Carpeta nueva para crear una carpeta nueva. El nombre del proyecto mostrará la ruta de acceso al archivo de la carpeta que seleccionaste en la parte superior de la siguiente página del menú. Para mover elementos al directorio raíz de tu proyecto, haz clic en Mover sin seleccionar una carpeta.
  5. Haz clic en Mover para confirmar el destino seleccionado, haz clic en Carpeta nueva para crear una carpeta nueva o haz clic en el vínculo del nombre del proyecto en la ruta del archivo para volver al menú de opciones de la carpeta principal.
  6. Haga clic en la X del encabezado Seleccionar archivos para salir del modo de edición masiva.

Después de cambiar la ruta de acceso de un archivo, asegúrate de actualizar cualquier declaración include en tu proyecto para que coincida con la ruta nueva. Consulta la sección Cómo usar include con carpetas de IDE en esta página para obtener información sobre el uso de include con carpetas de IDE.

Además, ten en cuenta que cuando cambias la ruta de un archivo, Git borra el archivo y crea uno nuevo con la ruta de acceso nueva. Esto significa que el historial de Git del archivo estará vacío, ya que Git lo considera un archivo nuevo. Para ver el historial de Git del archivo antes de su traslado, usa la interfaz de Git para navegar al archivo en su ubicación original y ver el historial de Git desde allí. (La misma lógica se aplica a los archivos renombrados, ya que Git borra de manera efectiva el archivo y crea uno nuevo con un nombre diferente).

Cómo borrar archivos y carpetas de forma masiva

Para borrar carpetas y archivos de forma masiva, sigue estos pasos:

Si borras una carpeta, se borrará todo su contenido. Antes de borrar una carpeta, verifica que deseas borrarlos. Si quieres conservarlos, mueve los archivos a otra ubicación antes de borrar la carpeta.

  1. Haga clic en el ícono de Edición masiva en la parte superior del panel Navegador de archivos.
  2. Selecciona los elementos que quieras borrar. La cantidad de archivos seleccionados se muestra en púrpura junto al encabezado Seleccionar archivos.
    • Para seleccionar o anular la selección de archivos individuales, expande sus carpetas y haz clic en la casilla de verificación junto a los nombres de los archivos.
    • Para seleccionar o anular la selección de carpetas completas y su contenido, haz clic en la casilla de verificación junto al nombre de la carpeta.
    • Para seleccionar una sección completa de la lista de directorios, usa mayúscula y haz clic. Haz clic en la casilla de verificación del elemento principal del rango, mantén presionada la tecla Mayús y haz clic en la casilla de verificación del último elemento de la lista. Se seleccionarán tanto elementos como todos los intermedios. También puedes simplemente presionar Mayús y hacer clic en un elemento para seleccionarlo y todo lo que aparece encima de él en la lista de directorios.
  3. Haz clic en el ícono de la papelera Eliminar elementos. El IDE mostrará un menú emergente con los elementos seleccionados.
  4. Para confirmar los elementos que desea eliminar, haga clic en Sí, borrar o en Cancelar para volver a la selección de elementos.
  5. Haga clic en la X del encabezado Seleccionar archivos para salir del modo de edición masiva.

Cómo usar include con carpetas de IDE

Una vez que organices los archivos de tu proyecto en carpetas, debes proporcionar la ruta de acceso al archivo cuando uses la declaración include.

Cuando uses include, ten en cuenta que LookML distingue mayúsculas de minúsculas. Cuando especificas la ruta de un archivo, debes hacer coincidir la mayúsculas y minúsculas del archivo y las carpetas de la ruta. Por ejemplo, si tu archivo está en la carpeta Views, debes hacer coincidir estas mayúsculas en el parámetro include. Por lo tanto, debes especificar include: "/Views/accidents.view". En general, es recomendable usar minúsculas cuando se nombran los objetos y carpetas de LookML.

Puedes usar rutas de acceso absolutas o relativas en la declaración include (consulta la sección Sintaxis de rutas en esta página para ver ejemplos) y puedes usar los comodines * y ** para incluir varios archivos a la vez (consulta la sección Ejemplos de comodines en esta página para ver ejemplos).

Por ejemplo, si tienes esta estructura de directorio en tu proyecto:

Las siguientes declaraciones incluirán la vista products, la vista order_facts y todas las vistas en el directorio /views/users/:

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

Cuando cambies la ruta de un archivo, asegúrate de actualizar cualquier declaración include en tu proyecto para que coincida con la ruta nueva del archivo. Es posible que veas advertencias de validación de LookML en tus instrucciones include anteriores si ya no hacen referencia a archivos o rutas de archivos existentes. Además, es posible que vea errores de validación de LookML para objetos de referencia que ya no se pueden encontrar porque sus rutas de archivo cambiaron.

Sugerencia útil: Para usar los comodines, puedes consultar los archivos que se incluyen al desplazar el cursor sobre el ícono de información por el número de línea o al hacer clic en la sentencia include y consultar la ayuda rápida:

Sugerencia útil: Para copiar la ruta de un archivo, selecciona Copy File Path en el menú de tres puntos del archivo en el IDE de Looker:

Sintaxis de la ruta de acceso

Estos son algunos ejemplos de sintaxis que puedes usar para incluir archivos:

Sintaxis Descripción
PATH Ruta relativa a partir de la ubicación actual del archivo.
./PATH Ruta relativa a partir de la ubicación actual del archivo. Este ejemplo apunta al mismo archivo que el ejemplo anterior: PATH.
../PATH Ruta relativa a partir del directorio principal del archivo actual.
/PATH Ruta de acceso absoluta a partir de la raíz del proyecto actual.
//PROJECT_NAME/PATH Ruta de acceso absoluta que comienza desde la raíz de un proyecto importado llamado PROJECT_NAME.

Ejemplos de comodines

Si usas los refinamientos de LookML, no uses comodines en tus inclusiones. Los perfeccionamientos de LookML aprovechan el orden de las inclusiones, y el uso de comodines en sus inclusiones no le permite controlar el orden en el que se incluye cada archivo. Consulte la página de documentación sobre perfeccionamientos de LookML para obtener más información sobre las mejoras.

Estos son algunos ejemplos que usan comodines (ten en cuenta que puedes reemplazar PATH por las sintaxis de la ruta de acceso de la tabla anterior):

Sintaxis Descripción
PATH/*.view Los archivos comodín coinciden y terminan con .view en PATH.
PATH/*.view.lkml Los archivos comodín coinciden y terminan con .view.lkml en PATH.

Dado que los archivos de vista tienen la extensión .view.lkml, en este ejemplo se especifica el mismo archivo que en el ejemplo anterior, PATH/*.view. La parte .lkml no se muestra en el IDE ni la parte .lkml requerida para las declaraciones include. Sin embargo, puedes usar comodines para aprovechar esta parte común de la extensión de archivo. Consulta la página de documentación de los archivos de proyectos de LookML para obtener una lista de las extensiones de archivos de proyectos.
PATH/*.lkml Los archivos comodín coinciden y terminan con .lkml en PATH.

Ten en cuenta que varios tipos de archivos comparten .lkml como la parte final de la extensión de archivo, como .view.lkml y .model.lkml. La parte .lkml no se muestra en el IDE ni la parte .lkml requerida para las declaraciones include. Sin embargo, puedes usar comodines para aprovechar esta parte común de la extensión de archivo. Consulta la página de documentación de los archivos de proyectos de LookML para obtener una lista de las extensiones de archivos de proyectos.
PATH/myfile.* Los archivos de comodines llamados myfile tienen cualquier tipo de extensión en PATH.
PATH/myfile.*.lkml Los archivos de comodines llamados myfile con cualquier tipo de extensión .lkml en PATH.
PATH/my*file.view Los comodines coinciden con los archivos que comienzan con my y terminan con file.view en PATH.
PATH/my*fi*le.view Los comodines coinciden con los archivos que comienzan con my, seguidos de algunos caracteres y, luego, fi, algunos caracteres adicionales y terminan en le.view a las PATH.
PATH/*/myfile.lkml Nombre comodín de carpeta (coincide solo con un nivel de anidamiento). Coincide con todos los archivos myfile.lkml de cualquier directorio secundario directo de PATH.
PATH/**/my_file.view Coincidencia de comodines recurrentes (coincide con cualquier cantidad de anidamiento) para todos los archivos llamados my_file.view.lkml en PATH y todos los subdirectorios.
PATH/**/*.view Comodines recurrentes que coinciden con todos los archivos que terminan en .view.lkml en los subdirectorios de PATH.
PATH/**/my_folder/myfile.view Comodines recurrentes que coinciden con la ruta secundaria /my_folder/myfile.view en cualquier profundidad en PATH.

Cómo usar map_layer con carpetas de IDE

Si tienes carpetas del IDE habilitadas para tu proyecto, debes usar la ruta de acceso del archivo cuando especifiques un archivo del proyecto para map_layer:

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

Cómo organizar un proyecto existente con carpetas IDE

Si tu proyecto ya tenía una estructura de archivos plana heredada, puedes optar por mantenerla; pero, si eliges organizar los archivos de tu proyecto en carpetas, te recomendamos que realices los siguientes preparativos:

  • Planifica la estructura de archivos con anticipación con todos los desarrolladores.
  • Asegúrate de que todos los desarrolladores de Looker implementen todas las actualizaciones en producción. Si un desarrollador tiene cambios sin implementar, sus ramas reflejarán la estructura de archivos que existía la última vez que se extrajo de la producción. Si el proyecto tenía una estructura de archivos plana en ese momento, la versión del archivo del programador se enviará a producción en su ubicación original, por lo que terminarás con dos copias del archivo. Además, si un desarrollador deshabilitó cambios durante la migración a carpetas, se enfrentará a un conflicto de fusión cuando extraiga datos de producción después de la migración.
  • Ejecuta una inmovilización de código temporal con todos tus desarrolladores hasta que el proyecto se migre por completo a la nueva estructura de directorio.
  • Asigna un único desarrollador para mover los archivos. En el siguiente procedimiento, se supone que un solo desarrollador migrará el proyecto a carpetas del IDE. Si necesitas que varios desarrolladores muevan archivos, divide la tarea entre ellos para evitar conflictos de fusión. Si tienes conflictos de combinación, consulta la página de documentación Usa el control de versión y la implementación para obtener información sobre cómo resolverlos.

Ten en cuenta que cuando mueves un archivo en Git, lo borras y creas un archivo nuevo con una ruta de acceso nueva. Esto significa que el historial de Git del archivo estará vacío, ya que se considerará como un archivo nuevo. Para ver el historial de Git del archivo antes de su traslado, usa la interfaz de Git para navegar al archivo en su ubicación original y ver el historial de Git desde allí.

Una vez que todos los desarrolladores hayan enviado y confirmado sus cambios y pausado todo el trabajo en el proyecto, puedes migrar el proyecto a su nueva estructura de directorio.

Asigna un único desarrollador para que complete todos los pasos que se indican a continuación:

  1. Verifica que todas las actualizaciones de todas las ramas de desarrollo se hayan implementado en producción. Esto incluye las ramas de desarrollo del desarrollador que realiza la migración a las carpetas del IDE.
  2. Verifica que todos los demás desarrolladores hayan dejado de realizar cambios en el proyecto.
  3. Extracción de producción.
  4. Crea las carpetas del proyecto.
  5. Mueve los archivos del proyecto a las carpetas, ya sea un archivo a la vez o mediante la edición masiva.
  6. Valida el LookML del proyecto. Se espera que tengas varios errores y advertencias de LookML, ya que las declaraciones include y map_layer usan referencias a ubicaciones de archivos que probablemente se trasladaron durante este procedimiento.
  7. Actualiza las declaraciones include y map_layer de tu proyecto para que coincidan con la ruta de acceso nueva del archivo. Además, es posible que vea errores de validación de LookML para objetos de referencia que ya no se pueden encontrar porque sus rutas de archivo cambiaron. Consulta la sección Cómo usar include con carpetas IDE en esta página para obtener información sobre cómo usar include con carpetas IDE y la sección Cómo usar map_layer con carpetas IDE de esta página para obtener información sobre el uso de capas de mapas con carpetas IDE.

    Sugerencia útil: Puedes usar comodines a fin de crear una corrección temporal para las advertencias de validación de LookML y los errores resultantes de las declaraciones include. Con los archivos de vista como ejemplo, puedes especificar include: "/**/*.view" para incluir todos los archivos en todas las carpetas de tu proyecto. Esto evitará los problemas de validación de LookML mientras continúa con el desarrollo. Sin embargo, esta no es una solución recomendada a largo plazo, ya que incluir más archivos de los necesarios puede afectar el rendimiento.

  8. Confirma los cambios.

  9. Implementa las actualizaciones en producción.

  10. Informa a los otros desarrolladores de Looker que ahora pueden extraer las actualizaciones de la producción y reanudar el desarrollo en el proyecto.