RW country data
Account products, the currencies they imply, and the privacy policy. They publish as an Onboarding EF data migration—the mechanism DigitalOnboardingSvc already applies at startup.
Review the script
This is the primary database artifact. It upserts the account products and privacy policy currently configured for RW. Review the values and rollback before adding it to DigitalOnboardingSvc.
src/Modules/Onboarding/OmniDos.Onboarding.Infra/Migrations/20261018155018_SeedRWCountryData.csusing Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using OmniDos.Onboarding.Infra.Data;
#nullable disable
namespace OmniDos.Onboarding.Infra.Migrations
{
/// <summary>Upserts RW account products and privacy-policy lookup data.</summary>
[DbContext(typeof(OnboardingDbContext))]
[Migration("20261018155018_SeedRWCountryData")]
public partial class SeedRWCountryData_20261018155018 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("""
-- No database-backed country data was supplied.
""");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
// Rows inserted by this migration are safe to remove. Rows that already
// existed were updated in place and need a forward corrective migration;
// their previous values are not available here to restore safely.
migrationBuilder.Sql("""
-- Nothing was inserted by this migration.
""");
}
}
}
How the platform uses this file
Up() method runs the seed script. The studio does not generate or copy an EF designer model. - 1Add the generated file
Download the bundle and copy
repo/over the root of the DigitalOnboardingSvc checkout. Keep the generated migration path and timestamp unchanged. - 2Review before deployment
Confirm the country, currencies, scheme codes, document URLs and both
Up()andDown(). The migration deliberately does not delete database products omitted from the studio. - 3Let the backend apply it
In a deployed environment,
OmniDos.Web.Apiapplies pending migrations before serving requests. A migration failure stops startup, so the seed is never run against an outdated schema. - 4Verify the country lookups
After startup, verify account products, currencies and the privacy policy through the Onboarding lookup endpoints for
RW.
dotnet ef database update \
--project src/Modules/Onboarding/OmniDos.Onboarding.Infra/OmniDos.Onboarding.Infra.csproj \
--startup-project src/Api/OmniDos.Web.Api/OmniDos.Web.Api.csproj \
--context OnboardingDbContext- ✕ No account products — the account picker and the currency lookup would both come back empty.
- ✕ Privacy policy: not configured.
src/Modules/Onboarding/OmniDos.Onboarding.Infra/Migrations/20261018155018_SeedRWCountryData.cs