Group all 69 projects into category subfolders under src/ and tests/ so the Rider Solution Explorer mirrors the module structure. Folders: Core, Server, Drivers (with a nested Driver CLIs subfolder), Client, Tooling. - Move every project folder on disk with git mv (history preserved as renames). - Recompute relative paths in 57 .csproj files: cross-category ProjectReferences, the lib/ HintPath+None refs in Driver.Historian.Wonderware, and the external mxaccessgw refs in Driver.Galaxy and its test project. - Rebuild ZB.MOM.WW.OtOpcUa.slnx with nested solution folders. - Re-prefix project paths in functional scripts (e2e, compliance, smoke SQL, integration, install). Build green (0 errors); unit tests pass. Docs left for a separate pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
63 lines
2.5 KiB
C#
63 lines
2.5 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Configuration.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class AddLdapGroupRoleMapping : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "LdapGroupRoleMapping",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
|
LdapGroup = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: false),
|
|
Role = table.Column<string>(type: "nvarchar(32)", maxLength: 32, nullable: false),
|
|
ClusterId = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: true),
|
|
IsSystemWide = table.Column<bool>(type: "bit", nullable: false),
|
|
CreatedAtUtc = table.Column<DateTime>(type: "datetime2(3)", nullable: false),
|
|
Notes = table.Column<string>(type: "nvarchar(512)", maxLength: 512, nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_LdapGroupRoleMapping", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_LdapGroupRoleMapping_ServerCluster_ClusterId",
|
|
column: x => x.ClusterId,
|
|
principalTable: "ServerCluster",
|
|
principalColumn: "ClusterId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_LdapGroupRoleMapping_ClusterId",
|
|
table: "LdapGroupRoleMapping",
|
|
column: "ClusterId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_LdapGroupRoleMapping_Group",
|
|
table: "LdapGroupRoleMapping",
|
|
column: "LdapGroup");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "UX_LdapGroupRoleMapping_Group_Cluster",
|
|
table: "LdapGroupRoleMapping",
|
|
columns: new[] { "LdapGroup", "ClusterId" },
|
|
unique: true,
|
|
filter: "[ClusterId] IS NOT NULL");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "LdapGroupRoleMapping");
|
|
}
|
|
}
|
|
}
|