Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Impossible to start a new instance on an existing SQL Server Database #8698

Closed
ceddup opened this issue Jun 12, 2023 · 3 comments
Closed

Impossible to start a new instance on an existing SQL Server Database #8698

ceddup opened this issue Jun 12, 2023 · 3 comments

Comments

@ceddup
Copy link

ceddup commented Jun 12, 2023

Context :
Sql Server 13.0
Windows 11
VS 2019 16.11.22
Orchard freshly cloned from https://github.com/OrchardCMS/Orchard.git
Empty Database created on the server

Starting the Orchard.Web project leads to http://localhost:30321/OrchardLocal/ with the "Get Started" page. Choosing "Use an existing SQL Server, SQL Express database" and filling the "Connection string".

After validation, this error pops up in Visual Studio on line 36 of OrchardCMS\src\Orchard\Data\FetchRequest.cs :
NHibernate.Exceptions.GenericADOException : 'could not execute query
[ select contentpar0_.Id as Id12_0_, contentpar1_.Id as Id13_1_, contentfie2_.Id as Id11_2_, contentpar0_.Name as Name12_0_, contentpar0_.Hidden as Hidden12_0_, contentpar0_.Settings as Settings12_0_, contentpar1_.Name as Name13_1_, contentpar1_.Settings as Settings13_1_, contentpar1_.ContentFieldDefinitionRecord_id as ContentF4_13_1_, contentpar1_.ContentPartDefinitionRecord_id as ContentP5_0__, contentpar1_.Id as Id0__, contentfie2_.Name as Name11_2_ from Settings_ContentPartDefinitionRecord contentpar0_ left outer join Settings_ContentPartFieldDefinitionRecord contentpar1_ on contentpar0_.Id=contentpar1_.ContentPartDefinitionRecord_id left outer join Settings_ContentFieldDefinitionRecord contentfie2_ on contentpar1_.ContentFieldDefinitionRecord_id=contentfie2_.Id ]
[SQL: select contentpar0_.Id as Id12_0_, contentpar1_.Id as Id13_1_, contentfie2_.Id as Id11_2_, contentpar0_.Name as Name12_0_, contentpar0_.Hidden as Hidden12_0_, contentpar0_.Settings as Settings12_0_, contentpar1_.Name as Name13_1_, contentpar1_.Settings as Settings13_1_, contentpar1_.ContentFieldDefinitionRecord_id as ContentF4_13_1_, contentpar1_.ContentPartDefinitionRecord_id as ContentP5_0__, contentpar1_.Id as Id0__, contentfie2_.Name as Name11_2_ from Settings_ContentPartDefinitionRecord contentpar0_ left outer join Settings_ContentPartFieldDefinitionRecord contentpar1_ on contentpar0_.Id=contentpar1_.ContentPartDefinitionRecord_id left outer join Settings_ContentFieldDefinitionRecord contentfie2_ on contentpar1_.ContentFieldDefinitionRecord_id=contentfie2_.Id]'

Then, on the "Get Started" page, another error is displayed :
Setup failed: could not execute query
[ select contenttyp0_.Id as Id5_, contenttyp0_.Name as Name5_ from Orchard_Framework_ContentTypeRecord contenttyp0_ where contenttyp0_.Name=@p0 ]
Name:p1 - Value:Site
[SQL: select contenttyp0_.Id as Id5_, contenttyp0_.Name as Name5_ from Orchard_Framework_ContentTypeRecord contenttyp0_ where contenttyp0_.Name=@p0]

If I look at the Database, there's only one table : Orchard_Framework_DataMigrationRecord

So Orchard had access to the database and even created a table but there is nothing there like Orchard_Framework_ContentTypeRecord or Settings_ContentPartDefinitionRecord

I'm clueless on how to fix that.

Thank you in advance for your help.

@sebastienros
Copy link
Member

Can you check the log file after the first error?

@ceddup
Copy link
Author

ceddup commented Jun 16, 2023

Sure here you go :
2023-06-16 09:31:57,048 [6] Orchard.Data.Migration.DataMigrationManager - Default - Error while running migration version 0 for Settings. [http://localhost:30321/OrchardLocal/]
System.Reflection.TargetInvocationException: Une exception a été levée par la cible d'un appel. ---> NHibernate.Exceptions.GenericADOException: could not execute query
[ select contentpar0_.Id as Id12_0_, contentpar1_.Id as Id13_1_, contentfie2_.Id as Id11_2_, contentpar0_.Name as Name12_0_, contentpar0_.Hidden as Hidden12_0_, contentpar0_.Settings as Settings12_0_, contentpar1_.Name as Name13_1_, contentpar1_.Settings as Settings13_1_, contentpar1_.ContentFieldDefinitionRecord_id as ContentF4_13_1_, contentpar1_.ContentPartDefinitionRecord_id as ContentP5_0__, contentpar1_.Id as Id0__, contentfie2_.Name as Name11_2_ from Settings_ContentPartDefinitionRecord contentpar0_ left outer join Settings_ContentPartFieldDefinitionRecord contentpar1_ on contentpar0_.Id=contentpar1_.ContentPartDefinitionRecord_id left outer join Settings_ContentFieldDefinitionRecord contentfie2_ on contentpar1_.ContentFieldDefinitionRecord_id=contentfie2_.Id ]
[SQL: select contentpar0_.Id as Id12_0_, contentpar1_.Id as Id13_1_, contentfie2_.Id as Id11_2_, contentpar0_.Name as Name12_0_, contentpar0_.Hidden as Hidden12_0_, contentpar0_.Settings as Settings12_0_, contentpar1_.Name as Name13_1_, contentpar1_.Settings as Settings13_1_, contentpar1_.ContentFieldDefinitionRecord_id as ContentF4_13_1_, contentpar1_.ContentPartDefinitionRecord_id as ContentP5_0__, contentpar1_.Id as Id0__, contentfie2_.Name as Name11_2_ from Settings_ContentPartDefinitionRecord contentpar0_ left outer join Settings_ContentPartFieldDefinitionRecord contentpar1_ on contentpar0_.Id=contentpar1_.ContentPartDefinitionRecord_id left outer join Settings_ContentFieldDefinitionRecord contentfie2_ on contentpar1_.ContentFieldDefinitionRecord_id=contentfie2_.Id] ---> System.Data.SqlClient.SqlException: Nom de colonne non valide : 'ContentPartDefinitionRecord_id'.
Nom de colonne non valide : 'ContentPartDefinitionRecord_id'.
à System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) à System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) à System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() à System.Data.SqlClient.SqlDataReader.get_MetaData() à System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) à System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
à System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
à System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
à NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
à NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session)
à NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
à NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
à NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
--- Fin de la trace de la pile d'exception interne ---
à NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
à NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
à NHibernate.Loader.Hql.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters)
à NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters)
à NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results)
à NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results)
à NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters)
à NHibernate.Impl.AbstractQueryImpl2.List()
à NHibernate.Linq.DefaultQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery)
à NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)
à NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)
à Remotion.Linq.QueryableBase1.GetEnumerator() à Orchard.Data.FetchRequest2.GetEnumerator() dans C:\Travail\OrchardCMS\src\Orchard\Data\FetchRequest.cs:ligne 36
à System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() à System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer) à Orchard.Core.Settings.Metadata.ContentDefinitionManager.<AcquireContentPartDefinitions>b__20_0(AcquireContext1 ctx) dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Metadata\ContentDefinitionManager.cs:ligne 151
à Orchard.Caching.Cache2.CreateEntry(TKey k, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 57
à Orchard.Caching.Cache2.AddEntry(TKey k, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 27
à Orchard.Caching.Cache2.<>c__DisplayClass3_0.<Get>b__0(TKey k) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 19 à System.Collections.Concurrent.ConcurrentDictionary2.AddOrUpdate(TKey key, Func2 addValueFactory, Func3 updateValueFactory)
à Orchard.Caching.Cache2.Get(TKey key, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 17
à Orchard.Caching.DefaultCacheManager.Get[TKey,TResult](TKey key, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\DefaultCacheManager.cs:ligne 33 à Orchard.Caching.CacheManagerExtensions.Get[TKey,TResult](ICacheManager cacheManager, TKey key, Boolean preventConcurrentCalls, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\ICacheManager.cs:ligne 13
à Orchard.Core.Settings.Metadata.ContentDefinitionManager.AcquireContentPartDefinitions() dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Metadata\ContentDefinitionManager.cs:ligne 143
à Orchard.Core.Settings.Metadata.ContentDefinitionManager.b__19_0(AcquireContext1 ctx) dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Metadata\ContentDefinitionManager.cs:ligne 131 à Orchard.Caching.Cache2.CreateEntry(TKey k, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 57 à Orchard.Caching.Cache2.AddEntry(TKey k, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 27 à Orchard.Caching.Cache2.<>c__DisplayClass3_0.b__0(TKey k) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 19
à System.Collections.Concurrent.ConcurrentDictionary2.AddOrUpdate(TKey key, Func2 addValueFactory, Func3 updateValueFactory) à Orchard.Caching.Cache2.Get(TKey key, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\Cache.cs:ligne 17 à Orchard.Caching.DefaultCacheManager.Get[TKey,TResult](TKey key, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\DefaultCacheManager.cs:ligne 33
à Orchard.Caching.CacheManagerExtensions.Get[TKey,TResult](ICacheManager cacheManager, TKey key, Boolean preventConcurrentCalls, Func2 acquire) dans C:\Travail\OrchardCMS\src\Orchard\Caching\ICacheManager.cs:ligne 13 à Orchard.Core.Settings.Metadata.ContentDefinitionManager.AcquireContentTypeDefinitions() dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Metadata\ContentDefinitionManager.cs:ligne 128 à Orchard.Core.Settings.Metadata.ContentDefinitionManager.GetTypeDefinition(String name) dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Metadata\ContentDefinitionManager.cs:ligne 44 à Orchard.ContentManagement.MetaData.ContentDefinitionManagerExtensions.AlterTypeDefinition(IContentDefinitionManager manager, String name, Action1 alteration) dans C:\Travail\OrchardCMS\src\Orchard\ContentManagement\MetaData\IContentDefinitionManager.cs:ligne 24
à Orchard.Core.Settings.Migrations.Create() dans C:\Travail\OrchardCMS\src\Orchard.Web\Core\Settings\Migrations.cs:ligne 85
--- Fin de la trace de la pile d'exception interne ---
à System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
à System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
à System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
à System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
à Orchard.Data.Migration.DataMigrationManager.Update(String feature) dans C:\Travail\OrchardCMS\src\Orchard\Data\Migration\DataMigrationManager.cs:ligne 115

I have found a workarround by starting with a SqlServer CE then droping the database with SqlCe40ToolBox.zip then restoring that database on our Sql Server instance. I then had to tweak Settings.txt in App_Data and I think I suppressed the mappings.bin also. Not so simple but it eventually does work.

@sebastienros
Copy link
Member

I have found a workarround by starting with a SqlServer CE then droping the database with SqlCe40ToolBox.zip then restoring that database on our Sql Server instance. I then had to tweak Settings.txt in App_Data and I think I suppressed the mappings.bin also. Not so simple but it eventually does work.

I think this would mean that your SQL Server database is actually not empty and has tables that Orchard is trying to created. By using the sqlserverce temporarily you just skip the tables creation.

Can you try a different database, or try to set a custom table prefix in the setup screen to confirm this? Also what is the version of your SQL Server instance, it could be that it's not supported and some SQL statements fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants