postgres & mariadb providers
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
7b45c24dd9
commit
e63509f4f2
@ -0,0 +1,82 @@
|
||||
---
|
||||
sidebar_label: '5.2. MariaDB'
|
||||
sidebar_position: 2
|
||||
description: "explique comment utiliser le fournisseur MariaDB"
|
||||
---
|
||||
|
||||
|
||||
# Utilisation du fournisseur MariaDB
|
||||
*01/02/2023 ⋅ Marc Chevaldonné*
|
||||
|
||||
---
|
||||
|
||||
:::note Docker
|
||||
Cette méthode utilise MariaDB à travers un conteneur Docker en local.
|
||||
Vous devez donc installer Docker au préalable, en suivant ce lien par exemple : [https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/)
|
||||
:::
|
||||
|
||||
## Création du conteneur MariaDB en local
|
||||
|
||||
Dans un terminal, récupérez l'image docker de mariadb :
|
||||
```
|
||||
docker pull mariadb
|
||||
```
|
||||
|
||||
Créez un conteneur à partir de cette image (n'hésitez pas à changer le mot de passe...) :
|
||||
```
|
||||
docker run -p 127.0.0.1:3306:3306 --name mdb -e MARIADB_ROOT_PASSWORD=Password123! -e MARIADB_USER=user -e MARIADB_PASSWORD=pwd -e MARIADB_DATABASE=mydb -d mariadb:latest
|
||||
```
|
||||
|
||||
:::note variables d'environnement
|
||||
N'hésitez pas à changer les variables d'environnement comme le password, le user, le nom de la database, le root password...
|
||||
```-e MARIADB_ROOT_PASSWORD=Password123!``` permet de changer le mot de passe root
|
||||
```-e MARIADB_USER=user``` permet de changer le user
|
||||
```-e MARIADB_PASSWORD=pwd``` permet de changer le user
|
||||
```-e MARIADB_DATABASE=mydb``` permet de changer le user
|
||||
:::
|
||||
|
||||
Exécutez la commande ```mariadb``` dans le conteneur :
|
||||
```
|
||||
docker exec -it mdb mariadb --user root -pPassword123!
|
||||
```
|
||||
|
||||
:::note root password
|
||||
Le root password donné juste après le ```-p``` est celui défini dans la commande ```docker run```.
|
||||
:::
|
||||
|
||||
## NuGet
|
||||
Depuis Visual Studio (mac ou windows), installez les packages NuGet suivants, dans le projet contenant votre ```DbContext``` et vos entités :
|
||||
- Microsoft.EntityFrameworkCore
|
||||
- Microsoft.EntityFrameworkCore.Tools
|
||||
- Pomelo.EntityFrameworkCore.MySql
|
||||
|
||||
## DbContext
|
||||
Dans votre classe héritant de DbContext, utilisez la méthode d'extension ```UseMySql```.
|
||||
|
||||
```csharp MyDbContext
|
||||
public class MyDbContext : DbContext
|
||||
{
|
||||
//...
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
//...
|
||||
optionsBuilder.UseMySql("server=localhost;port=3306;user=user;password=pwd;database=mydb", new MySqlServerVersion(new Version(10, 11, 1)));
|
||||
//...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::note variables
|
||||
Vous devez bien sûr utiliser les variables définies lors de la commande ```docker run```, ou les variables par défaut si vous ne les avez pas définies.
|
||||
:::
|
||||
|
||||
Pour le reste de votre projet EntityFrameworkCore, aucune différence avec les méthodes présentées précédemment.
|
||||
|
||||
## Migrations et création de la base de données
|
||||
Vous pouvez maintenant créer les migrations et la base de données à l'aide des commandes classiques
|
||||
(par exemple depuis le projet dans lequel se trouve votre classe héritant de ```DbContext````) :
|
||||
```
|
||||
dotnet ef migrations add myMigrationName
|
||||
dotnet ef database update
|
||||
````
|
@ -0,0 +1,69 @@
|
||||
---
|
||||
sidebar_label: '5.1. Postgres'
|
||||
sidebar_position: 1
|
||||
description: "explique comment utiliser le fournisseur Postgres"
|
||||
---
|
||||
|
||||
|
||||
# Utilisation du fournisseur Postgres
|
||||
*01/02/2023 ⋅ Marc Chevaldonné*
|
||||
|
||||
---
|
||||
|
||||
:::note Docker
|
||||
Cette méthode utilise Postgres à travers un conteneur Docker en local.
|
||||
Vous devez donc installer Docker au préalable, en suivant ce lien par exemple : [https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/)
|
||||
:::
|
||||
|
||||
## Création du conteneur Postgres en local
|
||||
|
||||
Dans un terminal, récupérez l'image docker de postgres :
|
||||
```
|
||||
docker pull postgres
|
||||
```
|
||||
|
||||
Créez un conteneur à partir de cette image (n'hésitez pas à changer le mot de passe...) :
|
||||
```
|
||||
docker run --rm -P -p 127.0.0.1:5432:5432 -e POSTGRES_PASSWORD="1234" --name pg postgres:latest
|
||||
```
|
||||
|
||||
:::note variables d'environnement
|
||||
N'hésitez pas à changer les variables d'environnement comme le password, le user id, le nom de la database...
|
||||
:::
|
||||
|
||||
## NuGet
|
||||
Depuis Visual Studio (mac ou windows), installez les packages NuGet suivants, dans le projet contenant votre ```DbContext``` et vos entités :
|
||||
- Microsoft.EntityFrameworkCore
|
||||
- Microsoft.EntityFrameworkCore.Tools
|
||||
- Npgsql.EntityFrameworkCore.PostgreSQL
|
||||
|
||||
## DbContext
|
||||
Dans votre classe héritant de DbContext, utilisez la méthode d'extension ```UseNpgsql```.
|
||||
|
||||
```csharp MyDbContext
|
||||
public class MyDbContext : DbContext
|
||||
{
|
||||
//...
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
//...
|
||||
optionsBuilder.UseNpgsql(@"host=localhost;database=postgres;user id=postgres;password=1234;");
|
||||
//...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::note variables
|
||||
Vous devez bien sûr utiliser les variables définies lors de la commande ```docker run```, ou les variables par défaut si vous ne les avez pas définies.
|
||||
:::
|
||||
|
||||
Pour le reste de votre projet EntityFrameworkCore, aucune différence avec les méthodes présentées précédemment.
|
||||
|
||||
## Migrations et création de la base de données
|
||||
Vous pouvez maintenant créer les migrations et la base de données à l'aide des commandes classiques
|
||||
(par exemple depuis le projet dans lequel se trouve votre classe héritant de ```DbContext````) :
|
||||
```
|
||||
dotnet ef migrations add myMigrationName
|
||||
dotnet ef database update
|
||||
````
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"label": "5. Providers",
|
||||
"position": 5,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "Comment utiliser différents fournisseurs ?"
|
||||
}
|
||||
}
|
Loading…
Reference in new issue