Adăugarea suportului PostgreSQL în aplicația ta ASP.Net Core prin Docker

  • 1 minute de citit
  • 9 exemple de cod

Disponibil și în English

De curând m-am jucat cu ASP.Net Core și dezvolt un proiect mic de Web API ca să învăț singur framework-ul.

În acest articol îți voi explica cum să folosești o bază de date Postgres cu Docker, ca experiența ta de dezvoltare să fie mult mai plăcută.

Înainte de a continua, te rog asigură-te că ai instalat:

Mai întâi, creează fișierul docker-compose.yml în directorul rădăcină al proiectului; fișierul ar trebui să conțină:

version: ‘3.4’ services: postgres: image: postgres environment: - POSTGRES_USER=app - POSTGRES_PASSWORD=app - POSTGRES_DB=mydbname volumes: - ./volumes/data/db:/var/lib/postgresql/data ports: - 5432:5432

Această configurație Postgres transmite câteva variabile de mediu care se explică de la sine bazei de date Postgres, leagă directorul ./volumes/data de volumul de date al Postgres și expune portul 5432. Legăm volumul ca să putem avea persistența datelor și ca să putem explora fișierele generate de baza de date Postgres.

Apoi, adaugă următoarele pachete în aplicația ta ASP.Net Core:

<pre class="wp-block-code">```  dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL  dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL.Design
Adaugă configurația conexiunii la baza de date în fișierul `appsettings.Development.json`; ține cont că acestea corespund șirurilor din fișierul `docker-compose.yml`. Când rulezi în producție, ar trebui să lansezi fiecare serviciu într-un container separat și să le configurezi cu variabile de mediu. Nu include niciodată informații sensibile direct în fișiere!
{"DatabaseConfig": {    "PostgresSQL": "Server=localhost;Port=5432;Database=mydbname;User Id=app;Password=app;"  },...}
Acum, în fișierul `Startup.cs`, când configurezi contextul aplicației, specifică faptul că vrei să folosești PostgresSQL.
services.AddDbContext(options =>{    options.UseNpgsql(Configuration.GetSection("DatabaseConfig")["PostgresSQL"]);});
Asta-i tot! Asigură-te că aplicația ta nu rulează și pornește baza de date cu `docker-compose up`. După ce baza de date a pornit, deschide un terminal nou și adaugă migrările:
dotnet ef migrations add InitialMigrationdotnet ef database update

```

Dacă vrei să oprești baza de date, poți rula docker ps și docker stop unde `` este identificatorul hash al containerului bazei de date. Urmând pașii de mai sus obții o bază de date de dezvoltare izolată pe care o poți folosi alături de aplicația ta ASP.Net Core; dacă ai nevoie să adaugi ElasticSearch, Redis sau alt serviciu, tot ce trebuie să faci este să modifici fișierul docker-compose.yml ca să le includă și gata, voilà.

Mulțumesc că ai citit, să ai o zi frumoasă!