This commit is contained in:
owenchen committed 2026-08-26 13:22:07 +08:00
1 parent dc1c073ac6
commit 20abc22653
38 files changed
+143 -40

No files matched your search

@@ -1,4 +1,5 @@
using CloudBuilder.Core.DatabaseAccessor.Entity;
using CloudBuilder.Core.DatabaseAccessor;
using CloudBuilder.Core.DatabaseAccessor.Entity;
using CloudBuilder.Core.Service;
using CloudBuilder.Security.Data;
using CloudBuilder.Security.Entity;
@@ -100,7 +101,7 @@ namespace CloudBuilder.Security.Service
repositorySecurityGeneratorNumber.ChangeSecondaryDatabase();
var locales= repository.DetachedEntities.ToArray();
var locales = repository.DetachedEntities.ToArray();
var SecurityUsers = repositorySecurityUser.DetachedEntities.ToArray();
var SecurityUserActors = repositorySecurityUserActor.DetachedEntities.ToArray();
var SecurityActors = repositorySecurityActor.DetachedEntities.ToArray();
@@ -132,8 +133,14 @@ namespace CloudBuilder.Security.Service
repositorySecurityMaster.ChangeMasterDatabase();
repositorySecurityGeneratorNumber.ChangeMasterDatabase();
repository.ExecuteNonQuery("TRUNCATE TABLE " + LocaleEntity.DB_NAME_LOCALE);
// 取得 MasterDbContext,開啟跳審計,保留原始 CreatedBy / UpdatedBy
var secDbCtx = repository.GetDbContext() as MasterDbContext;
if (secDbCtx != null)
{
secDbCtx.SkipAudit = true;
}
repository.ExecuteNonQuery("TRUNCATE TABLE " + LocaleEntity.DB_NAME_LOCALE);
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityUserEntity.DB_NAME_SECURITY_USER);
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityActorEntity.DB_NAME_SECURITY_ACTOR);
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityUserActorEntity.DB_NAME_SECURITY_USER_ACTOR);
@@ -148,7 +155,7 @@ namespace CloudBuilder.Security.Service
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityFunctionMapEntity.DB_NAME_SECURITY_FUNCTION_MAP);
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityMasterEntity.DB_NAME_SECURITY_MASTER);
repository.ExecuteNonQuery("TRUNCATE TABLE " + SecurityGeneratorNumberEntity.DB_NAME_SECURITY_GENERATOR_NUMBER);
repository.InsertNow(locales);
repositorySecurityUser.InsertNow(SecurityUsers);
repositorySecurityUserActor.InsertNow(SecurityUserActors);
@@ -163,7 +170,26 @@ namespace CloudBuilder.Security.Service
repositorySecurityFunction.InsertNow(SecurityFunctions);
repositorySecurityFunctionMap.InsertNow(SecurityFunctionMaps);
repositorySecurityMaster.InsertNow(SecurityMasters);
//Copy 到 MySQL 不需要
if (secDbCtx.Database.ProviderName.Contains("SqlServer"))
{
repository.ExecuteNonQuery("SET IDENTITY_INSERT " + SecurityGeneratorNumberEntity.DB_NAME_SECURITY_GENERATOR_NUMBER + " ON;");
}
repositorySecurityGeneratorNumber.InsertNow(SecurityGeneratorNumbers);
//Copy 到 MySQL 不需要
if (secDbCtx.Database.ProviderName.Contains("SqlServer"))
{
repository.ExecuteNonQuery("SET IDENTITY_INSERT " + SecurityGeneratorNumberEntity.DB_NAME_SECURITY_GENERATOR_NUMBER + " OFF;");
}
// ⚠️務必關閉 SkipAudit,避免後續正常業務失效
if (secDbCtx != null)
{
secDbCtx.SkipAudit = false;
}
}
}
}