Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Sam Stuewe 12 posts 82 karma points
    Feb 23, 2021 @ 18:35
    Sam Stuewe
    0

    Updating from vendr 1.2.10 leaves site unbootable

    The current version of my site is Umbraco 8.6.6, and I'm using Vendr 1.2.10. I would like to update to Vendr 1.4.2.

    When I go to "Manage Nuget Packages for Solution…" in Visual Studio and update each of my projects to use the appropriate Vendr packages for a new version (I've tried 1.4.2 and 1.3.5 so far), everything goes smoothly. Then, after cleaning and rebuilding the solution, I run the site and I get the following stack trace:

    [BootFailedException: Boot failed: Umbraco cannot run. See Umbraco's log file for more details.
    
    -> Umbraco.Core.Exceptions.BootFailedException: Boot failed.
    
    -> System.Data.SqlClient.SqlException: Cannot find the object "vendrStore" because it does not exist or you do not have permissions.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteNonQuery() in C:\projects\dotnet\src\MiniProfiler.Shared\Data\ProfiledDbCommand.cs:line 284
       at Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.<ExecuteNonQuery>b__31_0() in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line 209
       at Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.<>c__DisplayClass33_0`1.<Execute>b__0() in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line 222
       at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func) in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryPolicy.cs:line 172
       at Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.Execute[T](Func`1 f) in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line 219
       at Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.ExecuteNonQuery() in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line 209
       at NPoco.Database.ExecuteNonQueryHelper(DbCommand cmd)
       at NPoco.Database.NPoco.IDatabaseHelpers.ExecuteNonQueryHelper(DbCommand cmd)
       at NPoco.Database.Execute(String sql, CommandType commandType, Object[] args)
       at NPoco.Database.Execute(Sql Sql)
       at NPoco.Database.Execute(String sql, Object[] args)
       at Umbraco.Core.Migrations.MigrationExpressionBase.ExecuteStatement(StringBuilder stmtBuilder) in D:\a\1\s\src\Umbraco.Core\Migrations\MigrationExpressionBase.cs:line 118
       at Umbraco.Core.Migrations.MigrationExpressionBase.Execute() in D:\a\1\s\src\Umbraco.Core\Migrations\MigrationExpressionBase.cs:line 77
       at Umbraco.Core.Migrations.Expressions.Create.Column.CreateColumnBuilder.Do() in D:\a\1\s\src\Umbraco.Core\Migrations\Expressions\Create\Column\CreateColumnBuilder.cs:line 22
       at Vendr.Core.Migrations.V_1_3_0.AddBaseCurrencyIdColumnToStoreTable.Migrate()
       at Umbraco.Core.Migrations.MigrationBase.Umbraco.Core.Migrations.IMigration.Migrate() in D:\a\1\s\src\Umbraco.Core\Migrations\MigrationBase.cs:line 73
       at Umbraco.Core.Migrations.MigrationPlan.Execute(IScope scope, String fromState, IMigrationBuilder migrationBuilder, ILogger logger) in D:\a\1\s\src\Umbraco.Core\Migrations\MigrationPlan.cs:line 313
       at Umbraco.Core.Migrations.Upgrade.Upgrader.Execute(IScopeProvider scopeProvider, IMigrationBuilder migrationBuilder, IKeyValueService keyValueService, ILogger logger) in D:\a\1\s\src\Umbraco.Core\Migrations\Upgrade\Upgrader.cs:line 67
       at Vendr.Core.Composing.VendrCoreComponent.Initialize()
       at Umbraco.Core.Composing.ComponentCollection.Initialize() in D:\a\1\s\src\Umbraco.Core\Composing\ComponentCollection.cs:line 32
       at Umbraco.Core.Runtime.CoreRuntime.Boot(IRegister register, DisposableTimer timer) in D:\a\1\s\src\Umbraco.Core\Runtime\CoreRuntime.cs:line 188]
       Umbraco.Core.Exceptions.BootFailedException.Rethrow(BootFailedException bootFailedException) in D:\a\1\s\src\Umbraco.Core\Exceptions\BootFailedException.cs:80
       Umbraco.Web.<>c.<Init>b__18_0(Object sender, EventArgs args) in D:\a\1\s\src\Umbraco.Web\UmbracoInjectedModule.cs:369
       System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +201
       System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +132
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +73
    

    The store was working before the upgrade, so I don't know why this would no longer function. Any ideas?

  • Matt Brailsford 4124 posts 22215 karma points MVP 9x c-trib
    Feb 24, 2021 @ 09:03
    Matt Brailsford
    0

    Hey Sam,

    Hmm, that's pretty weird. It seems to be suggesting that the vendrStore DB table can't be found for some reason.

    The migration in question is adding a new baseCurrencyId column of type nullable guid to the store table. You could try adding this manually as the migration performs a check first to make sure the column doesn't already exist, so if you create it, it should get skipped.

    The migration does do another update, populating that column with the stores default currency ID, but you should be able to go into the store settings and set that manually once you have it working.

    Hope this helps

    Matt

  • Sam Stuewe 12 posts 82 karma points
    Feb 24, 2021 @ 16:27
    Sam Stuewe
    100

    Matt,

    This set me on the right path. Knowing that there were schema changes required by the upgrade made it pretty clear what the issue was. Namely, that the SQL user the Umbraco connects with doesn't have permissions to modify the schema (for security reasons). I went ahead and temporarily elevated permissions for the user, and everything seems to have gone very smoothly!

    Thank you!

  • Matt Brailsford 4124 posts 22215 karma points MVP 9x c-trib
    Feb 24, 2021 @ 17:07
    Matt Brailsford
    0

    Ahhh, fantastic.

    Glad you got it all up and running. 👍

    Matt

Please Sign in or register to post replies

Write your reply to:

Draft