CodeGym /Cursos /SQL SELF /Instalación del plugin CodeGym

Instalación del plugin CodeGym

SQL SELF
Nivel 4 , Lección 4
Disponible

El plugin se integra en el entorno de desarrollo Intellij IDEA, WebStorm o PyCharm y te permite trabajar ahí con las tareas del curso CodeGym. Por ejemplo, puedes escribir el código de la solución, enviarlo para revisión, comparar tu solución con la "por defecto" y mucho más. El progreso en la resolución de tareas en el plugin se sincroniza con tu cuenta de CodeGym, así que se verá igual tanto en la web como en el IDE.

Puedes descargar el plugin CodeGym desde el marketplace de Jetbrains, directamente en tu entorno de desarrollo. A continuación, te mostramos los pasos usando WebStorm como ejemplo, pero los mismos pasos aplican para otros IDE.

Para trabajar con el plugin necesitas una versión de Jetbrains IDE 2023.1 o más reciente.

  1. Ve a la sección "Configuración", en Windows/Linux File - Settings, en MacOS WebStorm - Preferences. Si no ves la sección de configuración, abre cualquier proyecto o crea uno nuevo.

  2. En la ventana que aparece, en el menú lateral elige la sección Plugins y abre la pestaña Marketplace. En la barra de búsqueda escribe codegym

  3. Selecciona el plugin y haz clic en el botón Install.
  4. Reinicia (Restart IDE) WebStorm para empezar a trabajar con el plugin.

¡El plugin está instalado!

Iniciar sesión en tu cuenta y cargar una tarea

  1. Verás una interfaz un poco diferente y un botón. Iniciar sesión en la barra horizontal superior.

    Al hacer clic se abrirá una ventana para iniciar sesión en tu cuenta, donde tienes que introducir tu clave secreta:

    Recuerda que puedes encontrar tu clave secreta en la sección Configuración → Seguridad e inicio de sesión.

  2. Para abrir una nueva tarea, haz clic en Tasks en el panel vertical izquierdo, luego en la tarjeta de la tarea en el panel lateral izquierdo, y haz clic en Abrir:

  3. Cuando abres una nueva tarea, verás un área de trabajo con varios archivos importantes:
    • Solution — este es tu archivo principal de trabajo. Aquí es donde vas a escribir la consulta SQL para resolver la tarea.
    • init.sql — este es un script auxiliar para preparar tu base de datos local. Contiene instrucciones para crear las tablas necesarias y llenarlas con datos.
    • Pestaña con la condición de la tarea.
  4. Con el archivo Solution, todo es igual que en la web. Tienes que escribir la solución y hacer clic en el botón Проверить/Validate

Ejecución local de la solución

  1. Primero tienes que crear las tablas y los datos para la tarea en tu base de datos local. Para eso, abre el archivo init.sql, haz clic derecho sobre él y elige Run 'init.sql'.
  2. En la ventana "Edit Configuration" que se abre, tienes que indicar dónde se debe ejecutar el script. En la sección "Target data source / schema" haz clic en + y selecciona tu conexión configurada, y luego el esquema que necesitas (por ejemplo, university). Después de elegir, haz clic en Run.
  3. Después de ejecutarse correctamente, aparecerá un mensaje correspondiente en la consola de abajo. Para ver la tabla creada, actualiza la vista de tu base de datos en el panel "Database" (el botón con dos flechas). Deberías ver la nueva tabla (por ejemplo, products) en tu esquema.
  4. Ahora que la base de datos está lista, vuelve al archivo solution.sql. Escribe tu consulta SQL. Para probarla localmente, selecciona tu esquema en el menú desplegable sobre el editor y haz clic en el botón verde "Run". Tu consulta se ejecutará en la base de datos local y verás el resultado.

Reejecución de init.sql o la solución al problema de las dependencias

Cuando trabajes con las tareas, a menudo ejecutarás el script init.sql para preparar tu base de datos local. Pero, ¿qué sucede si lo ejecutas por segunda vez, cuando la tabla ya ha sido creada?

Parecería que el comando DROP TABLE IF EXISTS employees;, que se encuentra a menudo en dichos scripts, debería resolver este problema eliminando la tabla antigua antes de crear una nueva. Sin embargo, no siempre es así. Puedes encontrarte con un error que no permitirá eliminar la tabla. Esto ocurre si otros objetos de la base de datos hacen referencia a tu tabla, por ejemplo, Foreign Keys de otras tablas o secuencias (sequences) utilizadas para campos con autoincremento. El sistema protege estas relaciones, impidiendo eliminar la tabla "padre".

La opción CASCADE

Para estos casos, PostgreSQL tiene una extensión para el comando DROP: la opción CASCADE. Le dice al servidor: "Elimina esta tabla y elimina automáticamente todos los objetos que dependen de ella". Esto permite limpiar "a la fuerza" todo lo relacionado con la tabla que se va a eliminar.

Ejemplo de código


-- Esta variante puede causar un error si hay referencias a la tabla employees
DROP TABLE IF EXISTS employees;

-- VARIANTE para scripts de aprendizaje
-- Eliminará la tabla employees y todos los objetos que dependen de ella (claves, secuencias).
-- IF EXISTS previene un error si la tabla aún no existe.
DROP TABLE IF EXISTS employees CASCADE;

-- Después de esto, se puede volver a crear la tabla de forma segura
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    full_name TEXT NOT NULL
    -- ... otras columnas
);

¡Importante! Para fines educativos y en el desarrollo local, donde necesitas recrear frecuentemente la estructura de la BD, CASCADE es tu mejor aliado. Sin embargo, en bases de datos de producción reales, este comando debe usarse сon extrema precaución, ya que puede llevar a la eliminación no intencionada de datos y objetos relacionados importantes.

Sincronización de tareas web — plugin

La lista de tareas y sus estados se actualiza automáticamente cada cinco minutos o después de enviar cualquier tarea para revisión (servidor CodeGym).

Así que si resuelves una tarea en la web, en el plugin también aparecerá en la lista de tareas resueltas. Si necesitas actualizar la información de los estados de las tareas ahora mismo, haz clic en tu avatar (arriba a la derecha) y en el menú desplegable elige Sincronizar tareas:

Modo principiante en el plugin

Esta es una versión simplificada para quienes no tienen (o tienen poca) experiencia con WebStorm y otros entornos de desarrollo. En este modo se ocultan algunas funciones de WebStorm. Para desactivar este modo haz clic en tu avatar (arriba a la derecha) y en el menú desplegable elige Configuración:

Cómo ocultar el panel de navegación del plugin en modo PRO

Haz clic en Configuración (⚙️) y desmarca la opción "Mostrar panel de navegación del plugin":

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION