Upgrade 2009 R2 auf 2015

22. Dezember 2014 18:03

Hi,
ich versuche eine 2009 R2 Datenbank auf 2015 upzugraden. Dabei habe ich folgendes Problem. In der alten Version existieren jede Menge ungenutzter Zusatzmodule, d.h. es gibt tausende Objekte, die überflüssig sind und in 2015 entfallen können. Das Problem ist, dass ich mit meiner Entwicklerlizenz nicht auf diese Objekte zugreifen kann, weil sie in ID-Bereichen liegen, die für Partnermodule vorgesehen sind (z.B uralte Lohn-Objekte). Ich kann sie also weder manuell löschen, noch kann der Upgradprozess wie im entspr. Dokument beschrieben diese Objekte löschen (mit meiner DEV Lizenz)
Ich kann die Objekte im SQL Management Studio auf dem SQL Server löschen, aber ich fürchte, das macht beim weitern Upgradprozess in den nächsten Schritten (Sync Table Schema) bestimmt Probleme. Kennt jemand eine Lösung für dieses Problem?
VG - Uwe

Re: Upgrade 2009 R2 auf 2015

22. Dezember 2014 22:53

Man kann 0-byte "Killer Objecs" verwenden, um Objekte zu löschen. Selber kann man die zwar nur für bereits zugängliche Nummernbereiche erstellen, aber die Hersteller der obsoleten Add-ons sollten diese Löschobjekte für die jeweiligen ID-Bereiche liefern können.

http://navisionary.com/2011/11/how-to-delete-bsolete-dynamics-nav-objects/
http://www.archerpoint.com/blog/Posts/killer-objects

Re: Upgrade 2009 R2 auf 2015

23. Dezember 2014 09:48

Hallo,

ich habe inzwischen die Erfahrung gemacht, dass zumindest bis NAV2013 das SQL-Management-Studio hier dein bester Freund ist.

Hier kann man die nicht mehr benötigten Objekte egal ob lizensiert oder nicht löschen.

Dazu sind zunächst in einer - NEUEN - reinen Objekte- Datenbank die Tabellen
  • Object
  • Object Metadata
  • Object Tracking
  • Object Translation
  • User Metadata
per SQL-Abfrage von den entsprechenden Objekteinträgen zu befreien. Anschließend evtl. zu löschende Tabellen eines Mandanten aus der Tabellenliste der Datenbank löschen.
Damit sollten alle störenden Objektinformationen beseitigt sein. Im NAV- Development Environment sollten diese Objekte jetzt nicht mehr erscheinen, und ein "Compile All" sollte keine Fehler wg. Referenzen auf die gelöschten Objekte ergeben.

Nachdem man die beim Kompilieren aufgetretenen Fehler beseitigt hat, kann man die Objekte in eine Testdatenbank mit Daten einspielen, wo dann ggf. noch Feldinhalte gelöscht werden können, die nicht mehr benötigt werden. Dort ist dann die Prozedur der zu bereinigenden SQL-Tabellen zu wiederholen, und anschließend ein ausführlicher Test durchzuführen.

Erst wenn das alles positiv ausfällt, sollte man die Prozedur mit allen erforderlichen Schritten in der Echtdatenbank wiederholen.

Das Problem ist i.d.R. nicht das Löschen der Objekte, sondern immer noch vorhandene Referenzen auf die "schon lange nicht mehr verwendeten" Objekte. :mrgreen:

Gruß, Fiddi

Re: Upgrade 2009 R2 auf 2015

23. Dezember 2014 17:00

Hallo und danke für die Antworten.

Ich habe fiddis Weg mittlerweile versucht und konnte die Synchronisation nun ohne Fehlermedlungen durchführen.
Der größte Zeitaufwand ging drauf, um die ganzen Tabellen im SQL Server zu finden, in denen sich Relationen verbergen :-) Aber jetzt bin ich durch.

Werde über die Feiertage aber auch den von kowa geposteten Link mit den 0-Byte Objekten noch versuchen, das klingt etwas einfacher und die Idee gefällt mir.
Ich werde berichten.

Nochmal danke und schöne Weihnachten an alle hier im Forum
Uwe

Re: Upgrade 2009 R2 auf 2015

23. Dezember 2014 17:43

Der größte Zeitaufwand ging drauf, um die ganzen Tabellen im SQL Server zu finden, in denen sich Relationen verbergen :-) Aber jetzt bin ich durch.


Meintest du damit die Views, für die das gleiche gilt, wie für die Tabellen. Die solltest du evtl. vor den eigentlichen Tabellen löschen.

Andere Referenzen sollten eigentlich nicht mehr bestehen, es sei denn es gibt noch Felder in Tabellen, die auf die zu löschenden Tabellen Referenzieren, nur da helfen die Killerobjekte auch nicht :wink:

Gruß, Fiddi