Adding a new publishing target in Sitecore Version 10.1

  • Add new database connection in  ConnectionStrings.config located at path <<instance path>>\App_Config on your CM server

Edit your CM’s ConnectionStrings.config, and add a new database connection

<add name=”webExtra” connectionString=”Data Source=.\SQLEXPRESS;Initial Catalog=sc101_WebExtra;User ID=webuser;Password=XXXX” />

  • Add new publishing target in Sitecore
    • Open content editor and navigate to path sitecore/system/Publishing targets and add a new publishing target.

Provide the target database name which you added in connection string and click on Save.

  • Add new database in Sitecore.config file located at path

<<instance path>>\App_Config on your CM server

  • Search for below line
  • Copy the entire database web tag and paste after the closing of this tag.

Rename the new copied tag from web to webExtra (the name you given for your new target)

For your reference I added text for both as below

<!-- web -->
    <database id="web" singleInstance="true" type="Sitecore.Data.DefaultDatabase, Sitecore.Kernel" role:require="Standalone or ContentManagement or ContentDelivery">
      <param desc="name">$(id)</param>
      <icon>Images/database_web.png</icon>
      <securityEnabled security:require="Sitecore">true</securityEnabled>
      <securityEnabled security:require="None">false</securityEnabled>
      <dataProviders hint="list:AddDataProvider">
        <dataProvider type="Sitecore.Data.DataProviders.CompositeDataProvider, Sitecore.Kernel">
          <param desc="readOnlyDataProviders" hint="list">
            <protobufItems type="Sitecore.Data.DataProviders.ReadOnly.Protobuf.ProtobufDataProvider, Sitecore.Kernel">
              <filePaths hint="list">
                <filePath>$(dataFolder)/items/$(id)</filePath>
              </filePaths>
            </protobufItems>
          </param>
          <param desc="headProvider">
            <dataProvider ref="dataProviders/main" param1="$(id)">
              <disableGroup>publishing</disableGroup>
              <prefetch hint="raw:AddPrefetch">
                <sc.include file="/App_Config/Prefetch/Common.config" />
                <sc.include file="/App_Config/Prefetch/Webdb.config" />
              </prefetch>
            </dataProvider>
          </param>
        </dataProvider>
      </dataProviders>
      <PropertyStore ref="PropertyStoreProvider/store[@name='$(id)']" />
      <remoteEvents.EventQueue>
        <obj ref="eventing/eventQueueProvider/eventQueue[@name='$(id)']" />
      </remoteEvents.EventQueue>
      <archives hint="raw:AddArchive">
        <archive name="archive" />
        <archive name="recyclebin" />
      </archives>
      <cacheSizes hint="setting">
        <data>100MB</data>
        <items>50MB</items>
        <paths>2500KB</paths>
        <itempaths>50MB</itempaths>
        <standardValues>2500KB</standardValues>
      </cacheSizes>
      <BlobStorage hint="raw:AddBlobStorage">
        <providers default="classic">
          <provider name="classic" type="Sitecore.Data.Blobs.ClassicSqlBlobProvider, Sitecore.Kernel">
            <param desc="databaseName">$(id)</param>
          </provider>
        </providers>
      </BlobStorage>
    </database>
	 <!-- webExtra -->
    <database id="webExtra" singleInstance="true" type="Sitecore.Data.DefaultDatabase, Sitecore.Kernel" role:require="Standalone or ContentManagement or ContentDelivery">
      <param desc="name">$(id)</param>
      <icon>Images/database_web.png</icon>
      <securityEnabled security:require="Sitecore">true</securityEnabled>
      <securityEnabled security:require="None">false</securityEnabled>
      <dataProviders hint="list:AddDataProvider">
        <dataProvider type="Sitecore.Data.DataProviders.CompositeDataProvider, Sitecore.Kernel">
          <param desc="readOnlyDataProviders" hint="list">
            <protobufItems type="Sitecore.Data.DataProviders.ReadOnly.Protobuf.ProtobufDataProvider, Sitecore.Kernel">
              <filePaths hint="list">
                <filePath>$(dataFolder)/items/$(id)</filePath>
              </filePaths>
            </protobufItems>
          </param>
          <param desc="headProvider">
            <dataProvider ref="dataProviders/main" param1="$(id)">
              <disableGroup>publishing</disableGroup>
              <prefetch hint="raw:AddPrefetch">
                <sc.include file="/App_Config/Prefetch/Common.config" />
                <sc.include file="/App_Config/Prefetch/Webdb.config" />
              </prefetch>
            </dataProvider>
          </param>
        </dataProvider>
      </dataProviders>
      <PropertyStore ref="PropertyStoreProvider/store[@name='$(id)']" />
      <remoteEvents.EventQueue>
        <obj ref="eventing/eventQueueProvider/eventQueue[@name='$(id)']" />
      </remoteEvents.EventQueue>
      <archives hint="raw:AddArchive">
        <archive name="archive" />
        <archive name="recyclebin" />
      </archives>
      <cacheSizes hint="setting">
        <data>100MB</data>
        <items>50MB</items>
        <paths>2500KB</paths>
        <itempaths>50MB</itempaths>
        <standardValues>2500KB</standardValues>
      </cacheSizes>
      <BlobStorage hint="raw:AddBlobStorage">
        <providers default="classic">
          <provider name="classic" type="Sitecore.Data.Blobs.ClassicSqlBlobProvider, Sitecore.Kernel">
            <param desc="databaseName">$(id)</param>
          </provider>
        </providers>
      </BlobStorage>
    </database>

  • Add new database in Sitecore.Eventing.config file located at path

<<instance path>>\App_Config\Sitecore\CMS.Core on your CM server

  • Search for eventQueue name=”web” and copy this tag and paste. Rename the copied tag from web to webExtra.

<eventQueue name=”web” type=”Sitecore.Data.Eventing.$(database)EventQueue, Sitecore.Kernel”>

                    <param ref=”dataApis/dataApi[@name=’$(database)’]” param1=”$(name)” />

                    <param ref=”PropertyStoreProvider/store[@name=’$(name)’]” />

                </eventQueue>

                                                         <eventQueue name=”webExtra” type=”Sitecore.Data.Eventing.$(database)EventQueue, Sitecore.Kernel”>

                    <param ref=”dataApis/dataApi[@name=’$(database)’]” param1=”$(name)” />

                    <param ref=”PropertyStoreProvider/store[@name=’$(name)’]” />

                </eventQueue>

  • Add new database in Sitecore.PropertyStore.config file located at path

<<instance path>>\App_Config\Sitecore\CMS.Core on your CM server

  • Search for store name=”web” and copy this tag and paste. Rename the copied tag from web to webExtra.

<store name=”web” prefix=”web” getValueWithoutPrefix=”true” singleInstance=”true” type=”Sitecore.Data.Properties.$(database)PropertyStore, Sitecore.Kernel”>

                <param ref=”dataApis/dataApi[@name=’$(database)’]” param1=”$(name)” />

                <param resolve=”true” type=”Sitecore.Abstractions.BaseEventManager, Sitecore.Kernel”/>

                <param resolve=”true” type=”Sitecore.Abstractions.BaseCacheManager, Sitecore.Kernel”/>

            </store>

                                        <store name=”webExtra” prefix=”webExtra” getValueWithoutPrefix=”true” singleInstance=”true” type=”Sitecore.Data.Properties.$(database)PropertyStore, Sitecore.Kernel”>

                <param ref=”dataApis/dataApi[@name=’$(database)’]” param1=”$(name)” />

                <param resolve=”true” type=”Sitecore.Abstractions.BaseEventManager, Sitecore.Kernel”/>

                <param resolve=”true” type=”Sitecore.Abstractions.BaseCacheManager, Sitecore.Kernel”/>

            </store>

  • Now all done, you will see the new publishing target

Happy Sitecoring!!!