BC18 - Invoke-NavApplicationDataConv. Single-Tenant -force

5. April 2022 13:33

Moin,

und zwar benutze ich für ein automatisiertes Skript folgenden PowerShell-Befehl um die Datenbank technisch anzuheben..

https://docs.microsoft.com/en-us/powers ... tral-ps-20

Wir haben im Moment nur Single-Tenant-Umgebungen. Dort steht aber für den -force-Befehl, dass der für Multi-Tenant gedacht ist.
Ist von Microsoft ein UND / ODER gemeint ? Kann ich den Parameter -force auch ohne Probleme und EInschränkungen in Single-Tenant-Betrieb nutzen?

-Force
This parameter let's you run the cmdlet even if there are installed extensions. Use this parameter to convert the application database in a multitenant deployment server instance. Forces the command to run without asking for user confirmation.

Type: SwitchParameter
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

Danke!

Gruß
Robin

Re: BC18 - Invoke-NavApplicationDataConv. Single-Tenant -for

5. April 2022 14:58

weiter oben kommt noch:

By default, you'll have to uninstall all extensions before you can run this cmdlet. You can use the -Force parameter to run the cmdlet without uninstalling extensions, but this is only recommended for multitenant deployments.


um deine Frage zu beantworten => und / oder

Aber empfohlen ist es in SingleTenant-Umgebungen nicht. => daher vorher alle Extensions deinstallieren

Da du ein Upgrade durchführst, sollte dir
Use the Uninstall-NAVApp cmdlet to uninstall an extension. For example, together with the Get-NAVAppInfo cmdlet, you can uninstall all extensions with a single command:

Code:
Get-NAVAppInfo -ServerInstance <BC17 server instance> | % { Uninstall-NAVApp -ServerInstance <BC17 server instance> -Name $_.Name -Version $_.Version }

bekannt sein => Quelle z.B. https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/upgrade/upgrade-technical-upgrade-v18

Re: BC18 - Invoke-NavApplicationDataConv. Single-Tenant -for

5. April 2022 15:57

Moin, danke für die schnelle Antwort. Stimmt. Das hatte ich auch schon mal gelesen..

Witzig, dass es trotzdem funktioniert bei Single-Tenancy. Es ist vor allem der einzige Weg mit -force um eine ältere BusinessCentral-Datenbank zu updaten (gehen wir mal von BC17 aus) ohne den Umweg einer eigenen BC17-Installation wo ich dann die Apps extra deinstalliere.

Ist das der offzielle Weg von Microsoft? Erstmal vorher BC17 irgendwo installieren um dann 1 Kommando auszuführen um die Apps zu deinstallieren, damit ich ohne -force die Datenbank "korrekt" technisch update? Das ist wirklich eine Krücke meiner Meinung nach.

Ich meine.. Sie könnten es ja auch verbieten? Invoke-NavApplicationDatabaseConversion -force bei Single-Tenant:

"Sorry. Sie nutzen kein Multi-Tenancy, bitte deinstallieren sie alle Apps vorher, so gehts nicht" Geht aber trotzdem. Was ist dann mit der Datenbank? Kaputt? Korrupt? Microsoft hätte ja mal einen Satz für Single-Tenant springen lassen können.

Ich würde das -force ja gerne weglassen, ich deinstalliere und unpublishe sogar alle Apps vorher wie vorgeschrieben. Aber das Kommando stellt mir immer eine Frage die mit "J" beantwortet werden muss. Und mit -$Confirm:false komme ich da auch nicht weiter. Also wie soll man das ganze dann in einem Skript ohne Nachfrage und -force benutzen?

Danke!

Gruß
Robin

Re: BC18 - Invoke-NavApplicationDataConv. Single-Tenant -for

6. April 2022 09:42

ich verstehe dich nicht.
Wenn du eine DB konvertieren willst, hast du doch bereits irgendwo eine BC-Installation (alt) am laufen! Dort dann die Apps deinstallieren und dann kannst du doch ohne force konvertieren!

Und mit -$Confirm:false komme ich da auch nicht weiter.


das sieht komisch aus, aber ich kenn mich auch nicht aus.
kenne nur das:
Code:
-confirm:$false

Re: BC18 - Invoke-NavApplicationDataConv. Single-Tenant -for

5. Juli 2022 22:04

Es geht darum, dass wir das Ganze automatisiert haben in einem Setup. Wir deinstallieren vorher schon die Apps. Das ist nicht das Problem. Mit -force läuft es in dem Skript ja auch ohne Probleme. Problem ist, dass Microsoft schreibt, dass -force nur für Multitenancy gedacht ist. Aber was macht man in dem Fall, wenn man kein Multitenancy hat und trotzdem ohne Nachfrage die Datenbank konvertieren will? Das geht nur mit -force. Mit dem Confirm false-Gedöns hat das bei mir nicht funktioniert. Die Nachfrage kam trotzdem.

Re: BC18 - Invoke-NavApplicationDataConv. Single-Tenant -for

6. Juli 2022 11:46

schau dir doch mal die verschiedenen Ausgaben in der PS an.

mit dem -Confirm bzw. -cf ist der Text einfach nur kürzer

Code:
[DOCDEV] PS C:\run> Invoke-NAVApplicationDatabaseConversion -DatabaseServer docdev -DatabaseName CRONUS

docdev
If you convert the database 'CRONUS' on the 'docdev' server, you will no longer be able to open it with older versions
of Dynamics 365 Business Central.

We strongly recommended that you make a database or transaction log backup in SQL Server before the conversion.

Note that the conversion removes any modifications that you have made to system tables.

Do you want to continue?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): n


Code:
[DOCDEV] PS C:\run> Invoke-NAVApplicationDatabaseConversion -DatabaseServer docdev -DatabaseName CRONUS -cf

Confirm
Are you sure you want to perform this action?
Performing the operation "Invoke-NAVApplicationDatabaseConversion" on target "DatabaseServer = docdev, DatabaseName =
CRONUS".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): n
[DOCDEV] PS C:\run>


############
Wenn MS den force-Parameter nicht hätte, müsste die für jeden einzelnen Tenant die Extensions deinstaliieren - was natürlich geht, aber die haben halt einfach gesagt, lasst uns force nehmen, dann ist uns das egal, denn wir konvertieren ja eh die DB

Natürlich kann man sich darum streiten, dass die Doku echt bescheiden ist und der Confirm-Switch ....naja was soll ich dazu sagen?
Aus meiner Sicht, kannst du -force auch für SingleTenants verwenden.

Was sagt denn euer Partner?