CodeGym /Kursy /SQL SELF /Instalacja pluginu CodeGym

Instalacja pluginu CodeGym

SQL SELF
Poziom 4 , Lekcja 4
Dostępny

Plugin integruje się z IDE Intellij IDEA, WebStorm albo PyCharm i pozwala Ci pracować w nim z zadaniami kursu CodeGym. Na przykład: pisać kod rozwiązania, wysyłać go do sprawdzenia, porównywać swoje rozwiązanie z "domyślnym" i dużo więcej. Progres w rozwiązywaniu zadań w pluginie jest synchronizowany z Twoim kontem na CodeGym, więc będzie wyglądał tak samo na stronie i w IDE.

Plugin CodeGym możesz pobrać z marketplace Jetbrains, bezpośrednio w swoim IDE. Dalej pokażemy kroki na przykładzie WebStorm, ale te same kroki działają też w innych IDE.

Do pracy z pluginem potrzebujesz wersji IDE Jetbrains 2023.1 lub nowszej.

  1. Wejdź w sekcję "Ustawienia", Windows/Linux File - Settings, MacOS WebStorm - Preferences. Jeśli nie widzisz sekcji ustawień, otwórz dowolny projekt lub stwórz nowy.

  2. W otwartym oknie w bocznym menu wybierz sekcję Plugins i otwórz zakładkę Marketplace. W polu wyszukiwania wpisz codegym

  3. Wybierz plugin i kliknij przycisk Install.
  4. Zrestartuj (Restart IDE) WebStorm, żeby zacząć pracę z pluginem.

Plugin zainstalowany!

Logowanie do konta i pobieranie zadania

  1. Zobaczysz trochę zmieniony interfejs i przycisk. Zaloguj się do konta na górnym pasku poziomym.

    Po kliknięciu otworzy się okno do logowania do Twojego konta, gdzie musisz wpisać swój sekret klucz:

    Przypominamy, że sekret klucz znajdziesz w sekcji Ustawienia → Bezpieczeństwo i logowanie.

  2. Żeby otworzyć nowe zadanie, kliknij na Tasks w lewym pionowym panelu, potem na kartę zadania w bocznym panelu po lewej i kliknij Otwórz:

  3. Kiedy otwierasz nowe zadanie, pojawia się przed Tobą workspace z kilkoma ważnymi plikami:
    • Solution — to Twój główny plik roboczy. Tutaj wpisujesz SQL-zapytanie do rozwiązania zadania.
    • init.sql — to pomocniczy skrypt do przygotowania lokalnej bazy danych. Zawiera instrukcje do tworzenia potrzebnych tabel i wypełnienia ich danymi.
    • Karta z treścią zadania.
  4. Z plikiem Solution wszystko jak na stronie. Trzeba napisać rozwiązanie i kliknąć przycisk Sprawdź/Validate

Lokalne uruchamianie rozwiązania

  1. Najpierw musisz stworzyć tabele i dane do zadania w swojej lokalnej bazie. W tym celu otwórz plik init.sql, kliknij na niego prawym przyciskiem myszy i wybierz Run 'init.sql'.
  2. W otwartym oknie "Edit Configuration" musisz wskazać, gdzie dokładnie ma się wykonać skrypt. W sekcji "Target data source / schema" kliknij na + i wybierz swoje skonfigurowane połączenie, a potem odpowiedni schemat (np. university). Po wyborze kliknij Run.
  3. Po udanym wykonaniu w konsoli na dole pojawi się odpowiedni komunikat. Żeby zobaczyć utworzoną tabelę, odśwież widok bazy danych w panelu "Database" (przycisk z dwiema strzałkami). Powinieneś zobaczyć nową tabelę (np. products) w swoim schemacie.
  4. Teraz, gdy baza danych jest gotowa, wróć do pliku solution.sql. Napisz swoje SQL-zapytanie. Żeby przetestować je lokalnie, wybierz swój schemat w rozwijanym menu nad edytorem i kliknij zielony przycisk "Run". Twoje zapytanie wykona się na lokalnej bazie danych i zobaczysz wynik.

Ponowne uruchomienie init.sql lub rozwiązanie problemu z zależnościami

Podczas pracy nad zadaniami często będziesz uruchamiać skrypt init.sql, aby przygotować swoją lokalną bazę danych. Ale co się stanie, jeśli uruchomisz go po raz drugi, gdy tabela już została utworzona?

Wydawałoby się, że polecenie DROP TABLE IF EXISTS employees;, które często występuje w takich skryptach, powinno rozwiązywać ten problem, usuwając starą tabelę przed utworzeniem nowej. Jednak nie zawsze tak jest. Możesz napotkać błąd, który nie pozwoli na usunięcie tabeli. Dzieje się tak, jeśli do Twojej tabeli odwołują się inne obiekty bazy danych, na przykład klucze obce (Foreign Keys) z innych tabel lub sekwencje (sequences) używane dla pól z autoinkrementacją. System chroni te powiązania, nie pozwalając na usunięcie tabeli nadrzędnej.

Opcja CASCADE

Dla takich przypadków w PostgreSQL istnieje rozszerzenie dla polecenia DROP — opcja CASCADE. Mówi ona serwerowi: „Usuń tę tabelę i automatycznie usuń wszystkie obiekty, które od niej zależą”. Pozwala to na „przymusowe” wyczyszczenie wszystkiego, co jest związane z usuwaną tabelą.

Przykład kodu


-- Ten wariant może spowodować błąd, jeśli istnieją odwołania do tabeli employees
DROP TABLE IF EXISTS employees;

-- WARIANT dla skryptów edukacyjnych
-- Usunie tabelę employees i wszystkie zależne od niej obiekty (klucze, sekwencje).
-- IF EXISTS zapobiega błędowi, jeśli tabela jeszcze nie istnieje.
DROP TABLE IF EXISTS employees CASCADE;

-- Po tym można bezpiecznie tworzyć tabelę od nowa
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    full_name TEXT NOT NULL
    -- ... inne kolumny
);

Ważne! W celach edukacyjnych i podczas lokalnego developmentu, gdzie często trzeba odtwarzać strukturę bazy danych, CASCADE jest najlepszym pomocnikiem. Jednak w rzeczywistych, produkcyjnych bazach danych polecenie to należy stosować z ogromną ostrożnością, ponieważ może prowadzić do niezamierzonego usunięcia ważnych powiązanych danych i obiektów.

Synchronizacja zadań strona — plugin

Lista zadań i ich statusów aktualizuje się automatycznie, co pięć minut albo po wysłaniu dowolnego zadania do sprawdzenia (serwer CodeGym).

Więc jeśli rozwiążesz zadanie na stronie, w pluginie też będzie na liście rozwiązanych. Jeśli chcesz odświeżyć info o statusach zadań od razu, kliknij na swój avatar (w prawym górnym rogu) i w menu wybierz Synchronizuj zadania:

Tryb początkującego w pluginie

To uproszczona wersja dla tych, którzy nie mają (albo mają mało) doświadczenia z WebStorm i innymi IDE. W tym trybie ukryte są niektóre funkcje WebStorm. Żeby wyłączyć ten tryb, kliknij na swój avatar (w prawym górnym rogu) i w menu wybierz Ustawienia:

Jak ukryć panel nawigacyjny pluginu w trybie PRO

Kliknij na Ustawienia (⚙️) i odznacz opcję "Wyświetlaj panel nawigacyjny pluginu":

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