mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.4 KiB
75 lines
3.4 KiB
5 years ago
|
## Entity Framework Core PostgreSQL integrace
|
||
5 years ago
|
|
||
5 years ago
|
> Podívejte se na [Entity Framework Core integrační dokument](../Entity-Framework-Core.md) pro základy integrace EF Core.
|
||
5 years ago
|
|
||
5 years ago
|
### Aktualizace projektu EntityFrameworkCore
|
||
5 years ago
|
|
||
5 years ago
|
- V projektu `Acme.BookStore.EntityFrameworkCore` nahraďte balík `Volo.Abp.EntityFrameworkCore.SqlServer` za `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
|
||
5 years ago
|
- Více informací v [PostgreSQL connection strings](https://www.connectionstrings.com/postgresql/), v tomto dokumentu věnujte pozornost sekci `Npgsql`
|
||
5 years ago
|
|
||
5 years ago
|
### Aktualizace projektu EntityFrameworkCore.DbMigrations
|
||
|
- Aktualizace pro použití PostgreSQL v `XXXMigrationsDbContextFactory`
|
||
|
- Nahraďte `new DbContextOptionsBuilder<XXXMigrationsDbContext>().UseSqlServer()` za `new DbContextOptionsBuilder<XXXMigrationsDbContext>().UseNpgsql()`
|
||
|
|
||
|
|
||
|
### Odstranění stávajících migrací
|
||
5 years ago
|
|
||
5 years ago
|
Smažte všechny stavající migrační soubory (včetně `DbContextModelSnapshot`)
|
||
5 years ago
|
|
||
|
![postgresql-delete-initial-migrations](images/postgresql-delete-initial-migrations.png)
|
||
|
|
||
5 years ago
|
### Znovu vygenerujte počáteční migraci
|
||
|
|
||
|
Nastavte správný spouštěcí projekt (obvykle web projekt)
|
||
5 years ago
|
|
||
5 years ago
|
![set-as-startup-project](../images/set-as-startup-project.png)
|
||
|
|
||
|
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:
|
||
5 years ago
|
|
||
5 years ago
|
Proveďte příkaz `Add-Migration`:
|
||
5 years ago
|
````
|
||
|
PM> Add-Migration Initial
|
||
|
````
|
||
|
|
||
5 years ago
|
### Aktualizace databáze
|
||
|
|
||
|
K vytvoření databáze máte dvě možnosti.
|
||
|
|
||
|
#### Použití DbMigrator aplikace
|
||
|
|
||
|
Ř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í.
|
||
|
|
||
|
> Projekt `.DbMigrator` má vlastní `appsettings.json`. Takže pokud jste změnili connection string uvedený výše, musíte změnit také tento.
|
||
|
|
||
|
Klikněte pravým na projekt `.DbMigrator` a vyberte **Set as StartUp Project**:
|
||
|
|
||
|
![set-as-startup-project](images/set-as-startup-project.png)
|
||
|
|
||
|
Zmáčkněte F5 (nebo Ctrl+F5) ke spuštění aplikace. Výstup bude vypadat následovně:
|
||
|
|
||
|
![set-as-startup-project](images/db-migrator-app.png)
|
||
|
|
||
|
#### 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)
|
||
|
|
||
|
![set-as-startup-project](../images/set-as-startup-project.png)
|
||
|
|
||
|
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:
|
||
5 years ago
|
|
||
|
````
|
||
|
PM> Update-Database
|
||
|
````
|
||
|
|
||
5 years ago
|
Dojde k vytvoření nové databáze na základě nakonfigurovaného connection stringu.
|
||
|
|
||
5 years ago
|
![postgresql-update-database](images/postgresql-update-database.png)
|
||
5 years ago
|
|
||
|
> 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.
|