Adonis
Przydatne linki
- Dokumentacja Adonisa
- Dokumentacja Lucid - ORM Adonisa (być może bardziej przydatny niż główna dokumentacja)
- Krótki kurs AdonisJs6 od twórców
- Kurs Solvro “Od zera do backend developera”
Wstęp
Oto lista najważniejszych rzeczy, które warto w mniejszym lub większym stopniu ogarniać biorąc się za naukę korzystania z Adonisa:
- Git i GitHub - podstawowe narzędzia pracy każdego developera. Z zasadami korzystania stosowanymi w Solvro można zapoznać się w Handbook GitHub
- IDE - środowisko do pracy z kodem. Do najpopularniejszych opcji należy Visual Studio Code i Webstorm od Jetbrains.
- TypeScript - jest to podstawowy język wykorzystywany przez Adonisa. Bez jego znajomości ciężko cokolwiek zrobić.
- NodeJS - technologia pozwalająca na uruchamianie JS poza przeglądarką. Wykorzystywana do budowania backendu. Zrozumienie działania importów i menadżera pakietów NPM jest potrzebne do sprawnego poruszania się po frameworku.
Instalacja
Proces instalacji został szczegółowo przedstawiony tutaj.
NodeJs
Do zainstalowania Adonisa potrzebujemy NodeJs co najmniej w wersji 20.6
Tworzenie nowej aplikacji
Po wpisaniu tej komendy otworzy się nam konfigurator, dzięki któremu możemy stworzyć nowy projekt.
Włączanie serwera developerskiego
Korzystając z tej komendy możemy uruchomić serwer deweloperski, który reaguje na zmiany plików i sam się odświeża.
Konfiguracja środowiska
Projekt Adonisa posiada domyślne pliki styli dla ESLint oraz Prettier. Ważne jest, żeby skonfigurować (lub zainstalować jeżeli ktoś nie ma) te 2 wtyczki). Polecam skonfigurować je, żeby działały automatycznie na zapisie (a conajmniej przy commitowaniu). Pozwala to na utrzymanie jednego stylu kodu na przestrzeni całego projektu. Jeżeli ktoś z jakiegoś powodu bardzo nie chce robić tego w sposób automatyczny można wywołać te narzędzia ręcznie:
Deployment
Poradnik jak zdeployować apkę Adonisową
Rozszerzenia
VSC
Dokumentacja Adonisa proponuje następujące wtyczki
- AdonisJS - pozwala na sprawdzanie routingu aplikacji, wywoływanie komend, migracji i czytanie dokumentacji bezpośrednio w edytorze.
- Edge - dodaje wsparcie podświetlania składni, autouzupełniania oraz fragmentów kodu.
Webstorm
Po zainstalowaniu Adonisa Webstorm powinien to wykryć i zaproponować nam instalację wtyczki Adonis.
Migracje
Ogólne
Migracje służą do zmieniania struktury bazy danych. Podczas ich pisania należy zwrócić uwagę na o żeby funcja down()
odwracała całkowicie działanie funkcji up()
. Niezastosowanie się do tej uwagi może nam przynieść dużo problemów przy ewentualnym niepowodzeniu migracji
Kolejność
Migracje wykonywane są w kolejności alfabetycznej (jeżeli nie zmienialiście nazw jest to kolejność tworzenia). Trzeba o tym pamiętać tworząc migracje, które są zależne od siebie. Najpierw tworzymy migrację od której będą zależeć inne, dopiero potem te zależne. W przypadku pomyłki najłatwiej zmienić nazwę.
Enumy w PostgreSQL
Jeżeli korzystamy z postgresa (a tak powinno być), to deklarując enumy należy skorzystać z natywnego enuma oferowanego przez bazę danych.
W takim przypadku należy zwrócić uwagę, żeby tworzyć takiego enuma tylko w jednej migracji (inaczej dostaniemy błędem po twarzy). Należy również usunąć nowo powstały typ podczas wywołania funkcji down()
.
Dokumentacja:
https://lucid.adonisjs.com/docs/table-builder#enum—enu
Rollbacki na produkcji
W 99% rollback kończy się utratą danych w bazie produkcyjnej. Trzeba też pamiętać, że na produkcji migracje są wywoływane tylko w przód, więc zmiana starych migracji nie wpłynie na stan bazy. Co zatem robić? Trzeba stworzyć nowy plik z migracją, w którym edytujemy dotychczasowy stan tabeli.
Dokumentacja: