Layered Solution: Db Migrator
Db Migrator Project
The Db Migrator project is a console application designed to handle database schema migrations and seed data population. It operates as a standalone application that can be executed on-demand or integrated into a CI/CD pipeline.
Usage
You can run the Db Migrator application:
- From the command line.
- Directly from Visual Studio.
Configuration
The Db Migrator project maintains its own configuration, separate from the main application. If you need to update the database connection string or any related settings, ensure that changes are applied consistently to both the main application and the Db Migrator to avoid discrepancies.
Folder Structure
In the *.DbMigrator project, you will find the DbMigratorHostedService class, which is responsible for executing database migrations and seeding data. This class is registered in the Program class and starts running when the application is launched.
Layers and Responsibilities
*.DomainLayer:
Contains theDatafolder, which holds the necessary classes for managing database migrations and seed data. However, since the*.Domainlayer does not reference theEntityFrameworkCorepackage, it only defines the abstraction for data migration.*.EntityFrameworkCoreLayer:
This layer is responsible for implementing database schema migrations. It includes theEntityFrameworkCore[ProjectName]DbSchemaMigratorclass, which handles the actual migration logic using theEntityFrameworkCorepackage.