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?
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.
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!
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:
The store was working before the upgrade, so I don't know why this would no longer function. Any ideas?
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
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!
Ahhh, fantastic.
Glad you got it all up and running. 👍
Matt
is working on a reply...