Skip to content
This repository was archived by the owner on Aug 3, 2024. It is now read-only.

Commit d6de585

Browse files
authored
[Database Migration] Validation database supports migration job. (#292)
* Extend to validation database * Delete default constructor of entities * Update
1 parent a827b73 commit d6de585

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

src/NuGet.Services.Validation/Entities/ValidationEntitiesContext.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,31 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4+
using System;
45
using System.ComponentModel.DataAnnotations.Schema;
56
using System.Data.Common;
67
using System.Data.Entity;
8+
using System.Data.Entity.Infrastructure;
79
using System.Data.Entity.Infrastructure.Annotations;
810

911
namespace NuGet.Services.Validation
1012
{
13+
/// <summary>
14+
/// This ValidationDbContextFactory is provided for running migrations in a flexible way as follows:
15+
/// 1. Run migration using DbConnection; (For DatabaseMigrationTools with AAD token)
16+
/// 2. Run migration using connection string;
17+
/// 3. Run migration using default connection string ("Validation.SqlServer") in a web.config; (For command-line migration with integrated AAD/username+password)
18+
/// </summary>
19+
public class ValidationDbContextFactory : IDbContextFactory<ValidationEntitiesContext>
20+
{
21+
public static Func<ValidationEntitiesContext> ValidationEntitiesContextFactory;
22+
public ValidationEntitiesContext Create()
23+
{
24+
var factory = ValidationEntitiesContextFactory;
25+
return factory == null ? new ValidationEntitiesContext("Validation.SqlServer") : factory();
26+
}
27+
}
28+
1129
/// <summary>
1230
/// The Entity Framework database context for validation entities.
1331
/// </summary>
@@ -99,10 +117,6 @@ static ValidationEntitiesContext()
99117
public IDbSet<PackageRevalidation> PackageRevalidations { get; set; }
100118
public IDbSet<SymbolsServerRequest> SymbolsServerRequests { get; set; }
101119

102-
public ValidationEntitiesContext() : this("Validation.SqlServer")
103-
{
104-
}
105-
106120
public ValidationEntitiesContext(string nameOrConnectionString) : base(nameOrConnectionString)
107121
{
108122
}

src/NuGet.Services.Validation/Migrations/ValidationMigrationsConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
namespace NuGet.Services.Validation
77
{
8-
internal sealed class ValidationMigrationsConfiguration: DbMigrationsConfiguration<ValidationEntitiesContext>
8+
public class ValidationMigrationsConfiguration: DbMigrationsConfiguration<ValidationEntitiesContext>
99
{
1010
public ValidationMigrationsConfiguration()
1111
{

0 commit comments

Comments
 (0)