From 1da80929c9fbeea4e1365440a71dd9a2f07923ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 3 Jul 2020 20:29:58 +0300 Subject: [PATCH] Complete the database migration part --- docs/en/Tutorials/Part-1.md | 161 +++++++++--------- .../bookstore-dbmigrator-on-solution.png | Bin 0 -> 41421 bytes 2 files changed, 85 insertions(+), 76 deletions(-) create mode 100644 docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png diff --git a/docs/en/Tutorials/Part-1.md b/docs/en/Tutorials/Part-1.md index 0a3a14f947..0c2944346e 100644 --- a/docs/en/Tutorials/Part-1.md +++ b/docs/en/Tutorials/Part-1.md @@ -77,7 +77,7 @@ namespace Acme.BookStore.Books > This tutorials leaves the entity properties with **public get/set** for the sake of simplicity. See the [entities document](../Entities.md) if you learn more about DDD best practices. -#### BookType Enum +### BookType Enum The `Book` entity uses the `BookType` enum. Create the `BookType` in the `Acme.BookStore.Domain.Shared` project: @@ -103,19 +103,18 @@ The final folder/file structure should be as shown below: ![bookstore-book-and-booktype](images/bookstore-book-and-booktype.png) -#### Add book entity to the DbContext +### Add Book Entity to the DbContext {{if DB == "ef"}} EF Core requires to relate entities with your `DbContext`. The easiest way to do this is to add a `DbSet` property to the `BookStoreDbContext` class in the `Acme.BookStore.EntityFrameworkCore` project, as shown below: ````csharp - public class BookStoreDbContext : AbpDbContext - { - public DbSet Users { get; set; } - public DbSet Books { get; set; } //<--added this line--> - //... - } +public class BookStoreDbContext : AbpDbContext +{ + public DbSet Books { get; set; } + //... +} ```` {{end}} @@ -127,9 +126,8 @@ Add a `IMongoCollection Books` property to the `BookStoreMongoDbContext` i ```csharp public class BookStoreMongoDbContext : AbpMongoDbContext { - public IMongoCollection Users => Collection(); - public IMongoCollection Books => Collection();//<--added this line--> - //... + public IMongoCollection Books => Collection(); + //... } ``` @@ -137,36 +135,76 @@ public class BookStoreMongoDbContext : AbpMongoDbContext {{if DB == "ef"}} -#### Configure the book entity +### Map the Book Entity to a Database Table -Open `BookStoreDbContextModelCreatingExtensions.cs` file in the `Acme.BookStore.EntityFrameworkCore` project and add following code to the end of the `ConfigureBookStore` method to configure the Book entity: +Open `BookStoreDbContextModelCreatingExtensions.cs` file in the `Acme.BookStore.EntityFrameworkCore` project and add the mapping code for the `Book` entity. The final class should be the following: ````csharp -builder.Entity(b => +using Acme.BookStore.Books; +using Microsoft.EntityFrameworkCore; +using Volo.Abp; +using Volo.Abp.EntityFrameworkCore.Modeling; + +namespace Acme.BookStore.EntityFrameworkCore { - b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema); - b.ConfigureByConvention(); //auto configure for the base class props - b.Property(x => x.Name).IsRequired().HasMaxLength(128); -}); + public static class BookStoreDbContextModelCreatingExtensions + { + public static void ConfigureBookStore(this ModelBuilder builder) + { + Check.NotNull(builder, nameof(builder)); + + /* Configure your own tables/entities inside here */ + + builder.Entity(b => + { + b.ToTable(BookStoreConsts.DbTablePrefix + "Books", + BookStoreConsts.DbSchema); + b.ConfigureByConvention(); //auto configure for the base class props + b.Property(x => x.Name).IsRequired().HasMaxLength(128); + }); + } + } +} ```` -Add the `using Volo.Abp.EntityFrameworkCore.Modeling;` statement to resolve `ConfigureByConvention` extension method. +* `BookStoreConsts` has constant values for schema and table prefixes for your tables. You don't have to use it, but suggested to control the table prefixes in a single point. +* `ConfigureByConvention()` method gracefully configures/maps the inherited properties. Always use it for all your entities. + +### Add Database Migration + +The startup template uses [EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) to create and maintain the database schema. Open the **Package Manager Console (PMC)** under the menu *Tools > NuGet Package Manager*. + +![Open Package Manager Console](images/bookstore-open-package-manager-console.png) + +Select the `Acme.BookStore.EntityFrameworkCore.DbMigrations` as the **default project** and execute the following command: + +```bash +Add-Migration "Created_Book_Entity" +``` + +![bookstore-pmc-add-book-migration](./images/bookstore-pmc-add-book-migration-v2.png) + +This will create a new migration class inside the `Migrations` folder of the `Acme.BookStore.EntityFrameworkCore.DbMigrations` project. + +Before updating the database, you will learn how to seed initial data to the database. + +> If you are using another IDE than the Visual Studio, you can use `dotnet-ef` tool as [documented here](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli#create-a-migration). {{end}} -{{if DB == "mongodb"}} +### Add Sample Seed Data -#### Add seed (sample) data +> It's good to have some initial data in the database before running the application. This section introduces the [Data Seeding](../Data-Seeding.md) system of the ABP framework. You can skip this section if you don't want to create seed data, but it is suggested to follow it to learn this useful ABP Framework feature. -Adding sample data is optional, but it's good to have initial data in the database for the first run. ABP provides a [data seed system](https://docs.abp.io/en/abp/latest/Data-Seeding). Create a class deriving from the `IDataSeedContributor` in the `*.Domain` project: +Create a class deriving from the `IDataSeedContributor` in the `*.Domain` project and copy the following code: ```csharp using System; using System.Threading.Tasks; +using Acme.BookStore.Books; using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; -using Volo.Abp.Guids; namespace Acme.BookStore { @@ -174,14 +212,10 @@ namespace Acme.BookStore : IDataSeedContributor, ITransientDependency { private readonly IRepository _bookRepository; - private readonly IGuidGenerator _guidGenerator; - public BookStoreDataSeederContributor( - IRepository bookRepository, - IGuidGenerator guidGenerator) + public BookStoreDataSeederContributor(IRepository bookRepository) { _bookRepository = bookRepository; - _guidGenerator = guidGenerator; } public async Task SeedAsync(DataSeedContext context) @@ -192,71 +226,46 @@ namespace Acme.BookStore } await _bookRepository.InsertAsync( - new Book( - id: _guidGenerator.Create(), - name: "1984", - type: BookType.Dystopia, - publishDate: new DateTime(1949, 6, 8), - price: 19.84f - ) + new Book + { + Name = "1984", + Type = BookType.Dystopia, + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + } ); await _bookRepository.InsertAsync( - new Book( - id: _guidGenerator.Create(), - name: "The Hitchhiker's Guide to the Galaxy", - type: BookType.ScienceFiction, - publishDate: new DateTime(1995, 9, 27), - price: 42.0f - ) + new Book + { + Name = "The Hitchhiker's Guide to the Galaxy", + Type = BookType.ScienceFiction, + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + } ); } } } ``` -{{end}} +* This code simply uses the `IRepository` (the default [repository](../Repositories.md)) to insert two books to the database, if there is no book currently in the database. -{{if DB == "ef"}} +### Update the Database -#### Add new migration & update the database +Run the `Acme.BookStore.DbMigrator` application to update the database: -The startup template uses [EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) to create and maintain the database schema. Open the **Package Manager Console (PMC)** under the menu *Tools > NuGet Package Manager*. +![bookstore-dbmigrator-on-solution](images/bookstore-dbmigrator-on-solution.png) -![Open Package Manager Console](./images/bookstore-open-package-manager-console.png) - -Select the `Acme.BookStore.EntityFrameworkCore.DbMigrations` as the **default project** and execute the following command: - -```bash -Add-Migration "Created_Book_Entity" -``` - -![bookstore-pmc-add-book-migration](./images/bookstore-pmc-add-book-migration-v2.png) - -This will create a new migration class inside the `Migrations` folder of the `Acme.BookStore.EntityFrameworkCore.DbMigrations` project. Then execute the `Update-Database` command to update the database schema: - -````bash -Update-Database -```` - -![bookstore-update-database-after-book-entity](./images/bookstore-update-database-after-book-entity.png) - -#### Add initial (sample) data - -`Update-Database` command has created the `AppBooks` table in the database. Open your database and enter a few sample rows, so you can show them on the listing page. +{{if DB == "ef"}} -```mssql -INSERT INTO AppBooks (Id,CreationTime,[Name],[Type],PublishDate,Price) VALUES -('f3c04764-6bfd-49e2-859e-3f9bfda6183e', '2018-07-01', '1984',3,'1949-06-08','19.84') +`.DbMigrator` is a console application that can be run to **migrate the database schema** and **seed the data** on **development** and **production** environments. -INSERT INTO AppBooks (Id,CreationTime,[Name],[Type],PublishDate,Price) VALUES -('13024066-35c9-473c-997b-83cd8d3e29dc', '2018-07-01', 'The Hitchhiker`s Guide to the Galaxy',7,'1995-09-27','42') +{{end}} -INSERT INTO AppBooks (Id,CreationTime,[Name],[Type],PublishDate,Price) VALUES -('4fa024a1-95ac-49c6-a709-6af9e4d54b54', '2018-07-02', 'Pet Sematary',5,'1983-11-14','23.7') -``` +{{if DB == "mongodb"}} -![bookstore-books-table](./images/bookstore-books-table.png) +While MongoDB **doesn't require** a database schema migration, it is still good to run this application since it **seeds the initial data** on the database. This application can be used on **development** and **production** environments. {{end}} diff --git a/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png b/docs/en/Tutorials/images/bookstore-dbmigrator-on-solution.png new file mode 100644 index 0000000000000000000000000000000000000000..0b81900307caecffbbf096d0d7c577aa1ca84437 GIT binary patch literal 41421 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˿|)v{ujg7-(lRTEwjI8$wb5Ekb|dVwvv}+AR5LEH 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 I;ik|21soqaIRF3v literal 0 HcmV?d00001