mirror of https://github.com/abpframework/abp.git
committed by
GitHub
9 changed files with 150 additions and 72 deletions
@ -1,74 +1,39 @@ |
|||||
## Entity Framework Core PostgreSQL integrace |
# Přepnutí na EF Core PostgreSQL providera |
||||
|
|
||||
> Podívejte se na [Entity Framework Core integrační dokument](../Entity-Framework-Core.md) pro základy integrace EF Core. |
Tento dokument vysvětluje, jak přepnout na poskytovatele databáze **PostgreSQL** pro **[spouštěcí šablonu aplikace](Startup-Templates/Application.md)**, která je dodávána s předem nakonfigurovaným SQL poskytovatelem. |
||||
|
|
||||
### Aktualizace projektu EntityFrameworkCore |
## Výměna balíku Volo.Abp.EntityFrameworkCore.SqlServer |
||||
|
|
||||
- V projektu `Acme.BookStore.EntityFrameworkCore` nahraďte balík `Volo.Abp.EntityFrameworkCore.SqlServer` za `Volo.Abp.EntityFrameworkCore.PostgreSql` |
Projekt `.EntityFrameworkCore` v řešení závisí na NuGet balíku [Volo.Abp.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.SqlServer). Odstraňte tento balík a přidejte stejnou verzi balíku [Volo.Abp.EntityFrameworkCore.PostgreSql](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.PostgreSql). |
||||
- Aktualizace pro použití PostgreSQL v `BookStoreEntityFrameworkCoreModule` |
|
||||
- Nahraďte `AbpEntityFrameworkCoreSqlServerModule` za `AbpEntityFrameworkCorePostgreSqlModule` |
|
||||
- Nahraďte `options.UseSqlServer()` za `options.UsePostgreSql()` |
|
||||
- V jiných projektech aktualizujte PostgreSQL connection string v nezbytných `appsettings.json` souborech |
|
||||
- Více informací v [PostgreSQL connection strings](https://www.connectionstrings.com/postgresql/), v tomto dokumentu věnujte pozornost sekci `Npgsql` |
|
||||
|
|
||||
### Aktualizace projektu EntityFrameworkCore.DbMigrations |
## Nahrazení závislosti modulu |
||||
- Aktualizace pro použití PostgreSQL v `XXXMigrationsDbContextFactory` |
|
||||
- Nahraďte `new DbContextOptionsBuilder<XXXMigrationsDbContext>().UseSqlServer()` za `new DbContextOptionsBuilder<XXXMigrationsDbContext>().UseNpgsql()` |
|
||||
|
|
||||
|
Najděte třídu ***YourProjectName*EntityFrameworkCoreModule** v projektu `.EntityFrameworkCore`, odstraňte `typeof(AbpEntityFrameworkCoreSqlServerModule)` z atributu `DependsOn`, přidejte `typeof(AbpEntityFrameworkCorePostgreSqlModule)` (také nahraďte `using Volo.Abp.EntityFrameworkCore.SqlServer;` za `using Volo.Abp.EntityFrameworkCore.PostgreSql;`). |
||||
|
|
||||
### Odstranění stávajících migrací |
## UsePostgreSql() |
||||
|
|
||||
Smažte všechny stavající migrační soubory (včetně `DbContextModelSnapshot`) |
Najděte volání `UseSqlServer()` v *YourProjectName*EntityFrameworkCoreModule.cs uvnitř projektu `.EntityFrameworkCore` a nahraďte za `UsePostgreSql()`. |
||||
|
|
||||
 |
Najděte volání `UseSqlServer()` v *YourProjectName*MigrationsDbContextFactory.cs uvnitř projektu `.EntityFrameworkCore.DbMigrations` a nahraďte za `UseNpgsql()`. |
||||
|
|
||||
### Znovu vygenerujte počáteční migraci |
> V závislosti na struktuře řešení můžete najít více volání `UseSqlServer()`, které je třeba změnit. |
||||
|
|
||||
Nastavte správný spouštěcí projekt (obvykle web projekt) |
## Změna connection stringů |
||||
|
|
||||
 |
PostgreSql connection stringy se od těch pro SQL Server liší. Je proto potřeba zkontrolovat všechny soubory `appsettings.json` v řešení a connection stringy v nich nahradit. Podívejte se na [connectionstrings.com](https://www.connectionstrings.com/postgresql/) pro více detailů o možnostech PostgreSql connection stringů. |
||||
|
|
||||
Otevřete **Package Manager Console** (Tools -> Nuget Package Manager -> Package Manager Console), zvolte `.EntityFrameworkCore.DbMigrations` jako **Default project** a proveďte následující příkaz: |
Typicky je potřeba změnit `appsettings.json` v projektech `.DbMigrator` a `.Web` projects, ale to záleží na vaší struktuře řešení. |
||||
|
|
||||
Proveďte příkaz `Add-Migration`: |
## Regenerace migrací |
||||
```` |
|
||||
PM> Add-Migration Initial |
|
||||
```` |
|
||||
|
|
||||
### Aktualizace databáze |
Startovací šablona používá [Entity Framework Core Code First migrace](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/). EF Core migrace závisí na zvoleném DBMS poskytovateli. Tudíž změna DBMS poskytovatele způsobí selhání migrace. |
||||
|
* Smažte složku Migrations v projektu `.EntityFrameworkCore.DbMigrations` and znovu sestavte řešení. |
||||
|
* Spusťte `Add-Migration "Initial"` v Package Manager Console (je nutné zvolit `.DbMigrator` (nebo `.Web`) projekt jako startovací projekt v Solution Explorer a zvolit projekt `.EntityFrameworkCore.DbMigrations` jako výchozí v Package Manager Console). |
||||
|
|
||||
K vytvoření databáze máte dvě možnosti. |
Tímto vytvoříte migraci databáze se všemi nakonfigurovanými databázovými objekty (tabulkami). |
||||
|
|
||||
#### Použití DbMigrator aplikace |
Spusťte projekt `.DbMigrator` k vytvoření databáze a vložení počátečních dat. |
||||
|
|
||||
Řešení obsahuje konzolovou aplikaci (v tomto příkladu nazvanou `Acme.BookStore.DbMigrator`), která může vytvářet databáze, aplikovat migrace a vkládat seed data. Je užitečná jak pro vývojové, tak pro produkční prostředí. |
## Spuštění aplikace |
||||
|
|
||||
> Projekt `.DbMigrator` má vlastní `appsettings.json`. Takže pokud jste změnili connection string uvedený výše, musíte změnit také tento. |
Vše je připraveno. Stačí už jen spustit aplikaci a užívat si kódování. |
||||
|
|
||||
Klikněte pravým na projekt `.DbMigrator` a vyberte **Set as StartUp Project**: |
|
||||
|
|
||||
 |
|
||||
|
|
||||
Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup bude vypadat následovně: |
|
||||
|
|
||||
 |
|
||||
|
|
||||
#### Použití EF Core Update-Database příkazu |
|
||||
|
|
||||
Ef Core má `Update-Database` příkaz, který v případě potřeby vytvoří databázi a aplikuje čekající migrace. |
|
||||
|
|
||||
Nastavte správný spouštěcí projekt (obvykle web projekt) |
|
||||
|
|
||||
 |
|
||||
|
|
||||
Otevřete **Package Manager Console** (Tools -> Nuget Package Manager -> Package Manager Console), vyberte projekt `.EntityFrameworkCore.DbMigrations` jako **Default Project** and spusťte následující příkaz: |
|
||||
|
|
||||
```` |
|
||||
PM> Update-Database |
|
||||
```` |
|
||||
|
|
||||
Dojde k vytvoření nové databáze na základě nakonfigurovaného connection stringu. |
|
||||
|
|
||||
 |
|
||||
|
|
||||
> Použití nástroje `.DbMigrator` je doporučený způsob, jelikož zároveň vloží seed data nutné k správnému běhu webové aplikace. |
|
||||
|
|||||
|
After Width: | Height: | Size: 9.4 KiB |
@ -0,0 +1,24 @@ |
|||||
|
{ |
||||
|
"culture": "cs", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Mailing.DefaultFromAddress": "Výchozí adresa odesílatele", |
||||
|
"DisplayName:Abp.Mailing.DefaultFromDisplayName": "Výchozí zobrazované jméno odesilátele", |
||||
|
"DisplayName:Abp.Mailing.Smtp.Host": "Hostitel", |
||||
|
"DisplayName:Abp.Mailing.Smtp.Port": "Port", |
||||
|
"DisplayName:Abp.Mailing.Smtp.UserName": "Uživatelské jméno", |
||||
|
"DisplayName:Abp.Mailing.Smtp.Password": "Heslo", |
||||
|
"DisplayName:Abp.Mailing.Smtp.Domain": "Doména", |
||||
|
"DisplayName:Abp.Mailing.Smtp.EnableSsl": "Povolit SSL", |
||||
|
"DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "Použít výchozí přihlašovací údaje", |
||||
|
"Description:Abp.Mailing.DefaultFromAddress": "Výchozí adresa odesílatele", |
||||
|
"Description:Abp.Mailing.DefaultFromDisplayName": "Výchozí zobrazované jméno odesilátele", |
||||
|
"Description:Abp.Mailing.Smtp.Host": "Název nebo IP adresa hostitele použitého pro SMTP transakce.", |
||||
|
"Description:Abp.Mailing.Smtp.Port": "Port použitý pro SMTP tansakce", |
||||
|
"Description:Abp.Mailing.Smtp.UserName": "Uživatelské jméno spojené s přihlašovacími údaji.", |
||||
|
"Description:Abp.Mailing.Smtp.Password": "Heslo pro uživatelské jméno spojené s přihlašovacími údaji.", |
||||
|
"Description:Abp.Mailing.Smtp.Domain": "Název domény nebo počítače, který ověřuje přihlašovací údaje.", |
||||
|
"Description:Abp.Mailing.Smtp.EnableSsl": "Zda SmtpClient používá SSL k šifrování připojení.", |
||||
|
"Description:Abp.Mailing.Smtp.UseDefaultCredentials": "Zda jsou výchozí přihlašovací údaje odesílány s požadavky." |
||||
|
} |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,7 @@ |
|||||
|
{ |
||||
|
"culture": "cs", |
||||
|
"texts": { |
||||
|
"DisplayName:Abp.Localization.DefaultLanguage": "Výchozí jazyk", |
||||
|
"Description:Abp.Localization.DefaultLanguage": "Váchozí jazyk aplikace." |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue