Jobbe med lokal database
Lokal database?
Forutsetning for denne veilederen er at du har en lokal database.
Dersom det IKKE er tilfellet, må du installere Docker og Docker Desktop, laste ned et db-image og starte den lokale FS-basen. Følg da veilederne:
Start lokal database
Den lokale FS-databasen som er installert som et docker-image, startes fra
- Docker Desktop applikasjonen
- kommandolinje på roten i FS-plattform prosjektet ved å kjøre kommandoen
docker compose up
PS C:\Users\ditt_brukernavn\dev\fs-plattform> docker compose up
[+] Running 1/0
✔ Container fs-plattform-oracle-1 Running 0.0s
Attaching to oracle-1
oracle-1 | 2023-12-12T08:56:10.478842+00:00
oracle-1 | Thread 1 advanced to log sequence 45 (LGWR switch)
...
- I et nytt terminalvindu kjører du på roten kommandoen
mvn clean installslik at hele prosjektet bygges
Det tredje punktet er kun nødvendig dersom mvn clean install ikke har vært kjørt siden siste restart av PCen.
Dette punktet er nødvendig dersom har gjort endringer som påvirker databasen.
'docker-compose' dokumentasjon
Aktuelle kommandoer:
(som jobber mot konfigurasjon i docker-compose.yml på roten av FS-plattform prosjektet)
docker compose up(Dette oppretter og starter containeren på nytt)docker compose down(Dette stopper og sletter containeren)
Dersom man kjører docker compose down og så docker compose up vil man slette og så opprette containeren på nytt.
Databasebrukere
- Bruker FS inneholder skjema FS - som i f.eks FSUTV. Kun lesetilgang.
- Bruker KJERNEAPI eier alle View'ene som vi bruker, men har ikke adgang til å se data
- Bruker I1234_FS_WS er brukeren som er logget inn i databasen fra APIet. Den har adgang til å se data i KJERNEAPI'ets Views og har lese-, skrive-, oppdatere og sletterettigheter i FS via synonyms.
Databaseverktøy - DataGrip
Jetbrains DataGrip er et verktøy for å administrere SQL-databaser.
DataGrip finnes som
Frittstående JetBrains IDE for databaser

Database tools and SQL plugin som gir alle de samme funksjonene som DataGrip IDE. Den er installert og aktivert i IntelliJ IDEA Ultimate som standard.
Denne plugin er kun tilgjengelig i Ultimate versjonen av IntelliJ.
Dersom du ikke finner Database Tool vinduet i IntelliJ, gå da til File | Settings og søk på "datagrip" og
sjekk om Database tools and SQL plugin er installert og aktivert.

DataGrip lar deg spørre, opprette og administrere databaser og gir full støtte for SQL. Det er et databasemiljø med flere motorer. Hvis databasen du bruker har en JDBC-driver, kan du koble til den via The Database tools and SQL plugin i IntelliJ eller DataGrip IDE.
Følgende databaser støttes:
MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Microsoft Azure, MongoDB, Redis, Apache Derby, Apache Hive, Cassandra, ClickHouse, Exasol, Greenplum, DB2, H2, HyperSQL, MariaDB, Redshift, Snowflake, Sybase , SQLite, CockroachDB, Couchbase, BigQuery og Vertica.
Hovedfunksjoner:
- Databaseutforsker
- Utføre spørringer
- Redigerbart dataregneark
- Syntaksutheving og kodingshjelp for SQL
- Refaktoreringer
- Import/eksportalternativer
- Diagrammer
Bruke DataGrip
Her er lenker til JetBrains sider for DataGrip
JetBrains DataGrip Getting started
Koble til en database
Opprette ny Oracle Data Source
I IntelliJ sitt Database-vindu
-
Klikk på
+ symboletøverst til venstre i Database-vindu -
Velg
Data Sourceog klikk påOracle
-
Dialogboksen
Data Sources and Driversåpnes
JDBC-detaljer
-
Fyll inn feltene
Name:@localhost_I1234_FS_WS
Comment:FS GraphQL API brukeren -
Under General velger du først
Connection type:Service Name -
Fyll inn feltene under General
Host:localhost
Port:1521
Service:XEPDB1
Driver:Thin
Authentication:User & Password
User:I1234_FS_WS
Password: [spør tech lead om passordet]
Save:Forever -
URL: [Fylles ut når verdiene over fylles inn]
Man kan lime inn denne tekststrengen
jdbc:oracle:thin:@//localhost:1521/XEPDB1
og så blir de fleste feltene fylt ut av seg selv.

Databaseskjema
Under tab Schemas velger du hvilke databaseskjemaer du vil ha tilgang til.
Default skjema for brukeren I1234_FS_WS er allede valgt (skjema I1234_FS_WS).
Her har vi valgt å legge til:
- Skjema
FS - Skjema
KJERNEAPI
Dersom du får en melding om oppdatering av JDBC-driver, gjør du det ved å klikke på lenke i meldingen.
Klikk på OK-knappen, så er Data Source konfigurasjonen satt opp.

Da har du tilgang til de skjemaene du trenger for å arbeide i FS-plattform med de rettigheter
som brukeren I1234_FS_WS har.

Databaseverktøy - SQL Developer
Oracle SQL Developer er et gratis databaseverktøy som øker produktiviteten og forenkler databaseutviklingsoppgaver. Med SQL Developer kan du bla gjennom databaseobjekter, kjøre SQL-setninger og SQL-skript, redigere og feilsøke PL/SQL-setninger, manipulere og eksportere data og vise og lage rapporter. Du kan koble til Oracle-databaser og du kan koble til utvalgte tredjepartsdatabaser, se metadata og data, og migrere disse databasene til Oracle.
Last ned Sql Developer og pakk ut filene i en passende mappe (f.eks. C:\Apps\sqldeveloper). Du starter Sql Developer ved å dobbelklikke på sqldeveloper.exe som ligger på roten av utpakkingsmappen. Ved å lage en snarvei til sqldeveloper.exe og legge den på Windows Oppgavelinje, kan du starte opp Sql Developer derfra.
Lær mer her: SQL Developer dokumentasjon

Koble til en database
For å opprette en ny databasetilkobling, klikk på det grønne pluss-ikonet New Connection. Pass på at du ikke får opp New Database Schema Service Connection dialogboksen. Du skal bruke New / Select Database Connection dialogboksen. Bruk dialogboksen for å angi informasjon om tilkoblingen.

JDBC-detaljer
-
Fyll inn feltene med disse verdiene
Name:
@localhost_I1234_FS_WS
Database type:Oracle -
Under User Info er verdiene
Authentication Type:DefaultUsername:I1234_FS_WS
Password: [spør tech lead om passordet] Role:defaultSaver Password: true -
Connection Type:
Basic -
Under Details er verdiene
Hostname:localhost
Port:1521
SID: [blank]
Service name:XEPDB1
Nå kan du teste denne databasetilkoblingen ved å klikke på Test knappen. Dette oppsettet burde gi Status : Success
Databaseskjema
Db-brukeren @localhost_I1234_FS_WS gir også tilgang til schema FS og KJERNAPI. Disse kan du finne under noden
Other users.
Se Databasebrukere lenger opp i dette dokumentet.
Kjente problemer
Bli med på dokumentasjonsdugnaden ved å dokumentere løsningen på et passende sted i denne veilederen.
PROBLEM: Logget inn i lokal db med feil bruker utløser 'ORA-28112'
Symptom
Hvis du prøver å se data når du er logget inn i databasen som KJERNEAPI
får du feilen "ORA-28112: kan ikke utføre retningslinjefunksjon".
Løsning:
- Logg inn i databasen som I1234_FS_WS
- Prøv på nytt
Kommentar
ORA-28112
Failed to execute policy function occurs when the policy function encounters some run time errors,
typically unhanded exceptions. Fortunately, the error will produce a trace file in the user_dump_dest directory
that can be examined and the error can be corrected.
Action: Check the trace file and correct the errors.
PROBLEM: Docker Desktop blir plutselig borte
Symptom
Docker Desktop, som var installert via Firmaportalen,
ble plutselig borte fra PCen og det finnes ikke spor av den.
Forklaring på problemet
Dersom man har installert Docker Desktop via Firmaportalen kan problemet oppstå når Firmaportalen prøver å oppdatere til en nyere versjon. Den installerte versjonen blir avinstallert uten forvarsel og dersom installasjonen av den nye versjonen feiler, vil det se ut som om Docker Desktop er avinstallert. Det gis ingen melding om at installasjonen feilet.
Dette problemet også kan oppstå dersom man prøver å starte oppgradering av Docker Desktop selv.
Forventet oppførsel
Forventet oppførsel ved feilende installasjon er at den tidligere versjon vil fortsette å fungere.
Problembeskrivelse på nettet
- GitHub sak: Docker gone if problem during update occurs
I denne tråden diskuteres dette problemet, men det ser ikke ut til at det grunnleggende problemet er løst ennå. - Innlegg på Docker Forum: Docker gone after failed upgrade attempt
I dette innlegget vises det til at dette problemet også kan oppstå dersom man prøver å starte oppgradering av Docker Desktop selv. I tillegg omtales det hvordan man finne filene/data man hadde.
Løsningsforslag
Selv om GitHub-saken over er fra 10.11.2017 (!) så er problemet fortsatt ikke løst.
For å få Docker Desktop tilbake kan man prøve å installere Docker Desktop på nytt via Firmaportalen eller man kan laste ned Docker Desktop og installere selv.
Dersom det ser ut som om Docker Desktop fortsatt er installert selv om den er borte, kan man prøve å redigere Windows Registry slik det er beskrevet i GitHub-saken i denne kommentaren. Spør noen som har erfaring, om hvordan man kan redigere Windows Registry på en trygg måte.