We are migrating the server, but the database exists on a separate server, and that’s not changing. When installing Octo on the new server, it asks for the user that will be running the service, but then tries to recreate that user in the database, and stops on the error because it can’t. It seems like the SQL script should check to see if the user already exists before creating it.
Saving instance: OctopusServer
Setting home directory to: C:\Octopus
Overriding master key
Setting database connection string to: data source=████████████████████;initial catalog=███████████████;integrated security=True
========== SQL Database Connection Details ========
SQL Server: ████████████████████
SQL Database: ███████████████
Authentication Type: Windows Integrated Security
User: █████████████████
===================================================
Processing user account '██████████████████'...
Creating server principal '██████████████████' as a new login from the Windows account with the same name...
Error: We are having trouble working with your SQL Database. This will usually be something you can fix. If not please contact support@octopus.com for help. Here are the error details: SQL Error 15247 - User does not have permission to perform this action.
Error: System.Data.SqlClient.SqlException
Error: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
Error: at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
Error: at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
Error: at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
Error: at 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)
Error: at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
Error: at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
Error: at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
Error: at Octopus.Core.RelationalStorage.RawSqlQueryExecutor.ExecuteNonQuery(String commandText, IDictionary`2 commandParameters, String connectionString, Nullable`1 commandTimeout)
Error: at Octopus.Core.RelationalStorage.SqlServerManager.CreateLoginFromWindows(String name, String defaultDatabase, String defaultLanguage)
Error: at Octopus.Server.Commands.DatabaseCommand.Start()
Error: The previous command returned a non-zero exit code of: 1
Error: The command that failed was: "C:\Program Files\Octopus Deploy\Octopus\Octopus.Server.exe" database --instance "OctopusServer" --connectionString "Data Source=████████████████████;Initial Catalog=███████████████;Integrated Security=True" --masterKey "████████████████████████████████████████" --grant "██████████████████"
Deleted instance: OctopusServer