patrickdemooij9 / SeoToolkit.Umbraco

SeoToolkit is a SEO package for Umbraco 9, 10, 11, 12 & 13. This package features most functionalities needed for your SEO needs like meta fields, sitemap, robots.txt and much more.
MIT License
37 stars 28 forks source link

Installing Seo Toolkit gives BootFailedException #185

Closed GijsD-iD closed 1 year ago

GijsD-iD commented 1 year ago

After installing the Seo Toolkit, I get an error.

First tried it on 11.1.0, also tested with on 11.3.1, tried in on a complete new installation and get the same error as well. Uninstalling the toolkit is only solution to get a working installation again.

An unhandled exception occurred while processing the request. BootFailedException: Boot failed: Umbraco cannot run. See Umbraco's log file for more details.

-> Umbraco.Cms.Core.Exceptions.BootFailedException: SQLite Error 1: 'near "ALTER": syntax error'.

-> Microsoft.Data.Sqlite.SqliteException: SQLite Error 1: 'near "ALTER": syntax error'. at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext() at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext() at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader() at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery() at Umbraco.Cms.Persistence.Sqlite.Services.SqlitePreferDeferredTransactionsConnection.CommandWrapper.ExecuteNonQuery() at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteNonQuery() in C:\projects\dotnet\src\MiniProfiler.Shared\Data\ProfiledDbCommand.cs:line 288 at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.b32_0() at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.<>c__DisplayClass38_0`1.b0() at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func) at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.Execute[T](Func1 f) at Umbraco.Cms.Infrastructure.Persistence.FaultHandling.FaultHandlingDbCommand.ExecuteNonQuery() at NPoco.Database.<>c__DisplayClass296_0.b__0() at NPoco.Database.ExecutionHook[T](Func1 action) at NPoco.Database.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 SeoToolkit.Umbraco.MetaFields.Core.Migrations.MetaFieldsValueTextMigration.Migrate() at Umbraco.Cms.Infrastructure.Migrations.MigrationBase.Run() at Umbraco.Cms.Infrastructure.Migrations.MigrationPlanExecutor.Execute(MigrationPlan plan, String fromState) at Umbraco.Cms.Core.Migrations.IMigrationPlanExecutor.ExecutePlan(MigrationPlan plan, String fromState) at Umbraco.Cms.Infrastructure.Migrations.Upgrade.Upgrader.Execute(IMigrationPlanExecutor migrationPlanExecutor, ICoreScopeProvider scopeProvider, IKeyValueService keyValueService) at Umbraco.Cms.Infrastructure.Install.PackageMigrationRunner.RunPackagePlans(IEnumerable1 plansToRun) at Umbraco.Cms.Infrastructure.Install.UnattendedUpgrader.HandleAsync(RuntimeUnattendedUpgradeNotification notification, CancellationToken cancellationToken)

Umbraco.Cms.Core.Exceptions.BootFailedException.Rethrow(BootFailedException bootFailedException)

patrickdemooij9 commented 1 year ago

That is strange. I'll take a look at it. Judging from the stacktrace, I assume that you are running SQLLite?

GijsD-iD commented 1 year ago

Yes that is the correct assumption, we are using SQLLite.

marcemarc commented 1 year ago

Alter Column is not a supported thing in SQLLIte

Not sure if the Umbraco AlterColumn builder method of Migrations takes account of this either (found a ticket you had raised! - https://github.com/umbraco/Umbraco-CMS/issues/12676)

https://www.sqlitetutorial.net/sqlite-alter-table/

most articles suggest creating a new table, copying across data, and then binning the old table, but maybe it's possible another way - you could I think add a new column - copy data across - and drop the old one?

patrickdemooij9 commented 1 year ago

This will be fixed by https://github.com/patrickdemooij9/SeoToolkit.Umbraco/pull/190. I hope to be able to release that soon. And thank you @marcemarc, I had totally forgotten that I already had some code in place in SeoToolkit to handle with these sort of situations

danilovulovic commented 1 year ago

@patrickdemooij9 do you know when you will be able to release this hotfix?

patrickdemooij9 commented 1 year ago

@patrickdemooij9 do you know when you will be able to release this hotfix?

Sorry, for the long wait. I had some accident with my bike and this kinda passed by. I am hoping to merge a few more bugfixes and then release in the coming days

patrickdemooij9 commented 1 year ago

@danilovulovic this has now been released in the latest release!

danilovulovic commented 1 year ago

Thanks for update @patrickdemooij9

GijsD-iD commented 1 year ago

Indeed thank you for the fix.