-
Notifications
You must be signed in to change notification settings - Fork 94
同时储存多份数据库配置,并支持热切换
Jeffrey Su edited this page Nov 6, 2019
·
6 revisions
- 在 Senparc.Web/appsettings.json 中,配置
SenparcCoreSetting
节点下的DatabaseName
值,如:
"SenparcCoreSetting": {
//...
"DatabaseName": "Local",
//...
},
- 在 Senparc.Web/App_Data/DataBase/SenparcConfig.config 中,可设置多个节点,配置不同的数据库连接字符串(Name 不可重复),如:
<?xml version="1.0" encoding="utf-8"?>
<SenparcConfigs>
<SenparcConfig>
<Id>1</Id>
<Name>Client</Name>
<Host><![CDATA[.\]]></Host>
<DataBase><![CDATA[SCF]]></DataBase>
<UserName><![CDATA[sa]]></UserName>
<Password><![CDATA[123]]></Password>
<Provider><![CDATA[System.Data.SqlClient]]></Provider>
<ConnectionString><![CDATA[data source=.\;initial catalog=SCF;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework]]></ConnectionString>
<!--本地数据库-->
<ConnectionStringFull><![CDATA[Server=192.168.8.254,14480;Database=SCF; User ID=sa; Password=@WSXzaq1;Application Name=fxu]]></ConnectionStringFull>
<ApplicationPath><![CDATA[/]]></ApplicationPath>
</SenparcConfig>
<SenparcConfig>
<Id>2</Id>
<Name>Local</Name>
<Host><![CDATA[.\]]></Host>
<DataBase><![CDATA[SCF]]></DataBase>
<UserName><![CDATA[sa]]></UserName>
<Password><![CDATA[123]]></Password>
<Provider><![CDATA[System.Data.SqlClient]]></Provider>
<ConnectionString><![CDATA[data source=.\;initial catalog=SCF;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework]]></ConnectionString>
<!--本地数据库-->
<ConnectionStringFull><![CDATA[Server=.\;Database=SCF; initial catalog=SCF;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework]]></ConnectionStringFull>
<ApplicationPath><![CDATA[/]]></ApplicationPath>
</SenparcConfig>
</SenparcConfigs>
- 完成配置后,系统将自动将 appsettings.json 中配置的 Local 和 SenparcConfig.config 中的
<Name>Local</Name>
对应节点匹配,调用此节点下的数据库配置。
只需一行命令即可瞬间切换:
// "Local" 为对应数据库配置的 Name
Senparc.Scf.Core.Config.SiteConfig.SenparcCoreSetting.DatabaseName = "Local";
© 2019 Senparc