November Happy Hour will be moved to Thursday December 5th.

Install community to separate database on existing EPiServer CMS 7 site

Vote:
 

I have a site based EPiServer CMS 7. I want to install Community on my site and store community's entities to separate DB. I use EPiServer Deploy Center for Community and install new SQL database, next update existing site (no database) and finally I update connectionString.config and set path to just isntalled DB to EPiServerCommon connection. But despite of this after rebuilding the site I have an exception that some community's stored procedures aren't found. In previous version of EPiServer (ver. 6r2) I used separate db for community and it worked.

Could you help me please? Perhaps somebody faced with this issue.

Thanks an advance.

#66084
Feb 19, 2013 19:59
Vote:
 

Do you have a call stack of the exception?

#66089
Feb 19, 2013 23:11
Vote:
 
InvalidOperationException: The stored procedure 'spEPiServerCommunityDocumentArchiveAddDocumentArchive' doesn't exist.]
   System.Data.SqlClient.SqlCommand.DeriveParameters() +3876
   System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(SqlCommand command) +237
   EPiServer.Data.Providers.ParameterDiscovery.SqlParameterDiscoverer.DiscoverParameters(DbCommand command) +204
   EPiServer.Data.Providers.SqlDatabaseHandler.CreateParametersAndSetValues(DbCommand command, Object[] parameterValues) +376
   EPiServer.Data.Providers.SqlDatabaseHandler.CreateCommand(String commandText, CommandType commandType, Object[] parameterValues) +98
   EPiServer.Community.DocumentArchive.Data.<>c__DisplayClass16.<AddDocumentArchive>b__15() +406
   EPiServer.Data.Providers.<>c__DisplayClass4.<ExecuteTransaction>b__3() +15
   EPiServer.Data.Providers.<>c__DisplayClass7`1.<ExecuteTransaction>b__6() +242
   EPiServer.Data.Providers.SqlDeadlockRetryPolicy.Execute(Boolean isInTransaction, Func`1 method) +114
   EPiServer.Community.DocumentArchive.Data.DocumentArchiveFactory.AddDocumentArchive(DocumentArchive archive) +173
   EPiServer.Community.DocumentArchive.DocumentArchiveHandler.AddDocumentArchive(DocumentArchive archive) +85
   EPiServer.Community.DocumentArchive.DocumentArchiveModule.CreateRequiredModuleEntries() +317
   EPiServer.Framework.Initialization.ModuleNode.Execute(Action a, String key) +64
   EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +736
   EPiServer.Framework.Initialization.InitializationEngine.Initialize(HostType hostType) +202
   EPiServer.Framework.Initialization.InitializationModule.Initialize(HostType hostType) +323
   EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +75
   EPiServer.Global..ctor() +103
   ASP.global_asax..ctor() +9
 
It looks like Community takes in a data not from own DB but from EPiServe DB, that doesn't have any community's stored rocedures
 
Connection string:

<add name="EPiServerDB" connectionString="Data Source=.;Initial Catalog=dbMyEPiServerSite;Integrated Security=False;User ID=dbUserMyEPiServerSite;Password=pa$$w0rd;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
<add name="EPiServerCommon" connectionString="Data Source=.;Initial Catalog=dbEPiServerCommunity;Integrated Security=False;User ID=dbUserEPiServerCommunity;Password=pa$$w0rd;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

Perhaps some settings should be set elsewhere.What do you think?

#66091
Feb 20, 2013 6:24
Vote:
 

Hi guys,

do you have some ideas?

#66264
Feb 26, 2013 9:15
Vote:
 

Hi!

I looked into this a little bit more and in EPiServer Community 7 the data layer is refactored to be a part of the EPiServer.Data module (containing Dynamic Data Store) that also is shared with EPiServer CMS.

I can see when reflecting that it is using a mechanism to resolve the database connection string that fallbacks to a hard coded connection string "EPiServerDB" if there is no <episerver.dataStore> section.

Using siteDataSettings should make it possible to get it to use your database but I'm not sure how it will affect EPiServer CMS and DDS.

Please, take some time and try it out and share with us what you find!

#66305
Feb 26, 2013 16:22
Vote:
 

Thanks for the advice Fredrik,

I have researched episerver.dataStore section and found answer for my question. In EpiServer 7 you can't use separate DB for communuty entities. In this section you can set name of connection string for specific site (for example if you have connection name that is different from EPIServerDB) and this connection will be used in all EpIServer modules (like Community, CMS and so on). In new version of EpIServer access to DB is based on IDatabaseHandler. Community also uses it.

#66428
Feb 28, 2013 12:49
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.