{"id":34734,"date":"2019-10-31T22:00:06","date_gmt":"2019-10-31T19:00:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sravnenie-i-vybor-sistem-migratsii-dannyh\/"},"modified":"2019-10-31T22:00:06","modified_gmt":"2019-10-31T19:00:06","slug":"sravnenie-i-vybor-sistem-migratsii-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh","title":{"rendered":"Vergleich und Auswahl von Datentransfersystemen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2>Vergleich und Auswahl von Datentransfersystemen<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/a25cc01b8d86b233a6d21caddb169fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Datenmodell im Entwicklungsprozess hat die Eigenschaft, sich zu \u00e4ndern, und irgendwann stimmt es nicht mehr mit der Datenbank \u00fcberein. Nat\u00fcrlich kann die DB gel\u00f6scht werden, und dann wird ORM eine neue Version erstellen, die dem Modell entspricht, aber ein solches Verfahren f\u00fchrt zu einem Verlust bestehender Daten. Somit besteht die Funktion des Migrationssystems darin, das Schema bei \u00c4nderungen mit dem Datenmodell in der Anwendung zu synchronisieren, ohne vorhandene Daten zu verlieren.<\/p>\n<p>Im Rahmen dieses Artikels m\u00f6chten wir verschiedene Werkzeuge zur Verwaltung von Datenbankmigrationen betrachten. Wir hoffen, dass dieser \u00dcberblick f\u00fcr Entwickler, die vor einer solchen Wahl stehen, n\u00fctzlich sein wird.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Aufgabe<\/h3>\n<p>\nIn unserem Unternehmen wird derzeit die aktive Entwicklung der n\u00e4chsten Generation des Produkts \u2013 Docs Security Suite (DSS) \u2013 vorangetrieben. Der Backend-Teil wird auf .Net Core geschrieben, und als DBMS wird entsprechend Entity Framework Core verwendet. Bei der Anwendungsentwicklung verwenden wir den Ansatz Code First.<\/p>\n<p>Das Dom\u00e4nenmodell der Anwendung wird gleichzeitig von mehreren Entwicklern erstellt \u2013 jeder ist f\u00fcr seinen logischen Teil des Systems verantwortlich. <\/p>\n<p>In der vorherigen Generation von DSS wurde das klassische Entity Framework Migrations (EF 6) als Migrationsverwaltungssystem verwendet. Allerdings gab es einige Beschwerden, vor allem dar\u00fcber, dass EF keinen praktikablen Ansatz zur L\u00f6sung von Versionskonflikten bietet. Diese Tatsache belastet uns immer noch beim Bugfixing im Rahmen der Unterst\u00fctzung, weshalb beschlossen wurde, alternative Varianten in Betracht zu ziehen.<\/p>\n<p>Nach der Besprechung wurden die folgenden Anforderungen an das Migrationsverwaltungssystem formuliert:<\/p>\n<ol>\n<li>Unterst\u00fctzung verschiedener DBMS. MS SQL Server, PostgreSQL, Oracle ist erforderlich, aber potenziell sind auch andere nutzbar.<\/li>\n<li>Arbeiten mit ORM. Urspr\u00fcnglich war die Verwendung von EF Core geplant, jedoch waren wir in der Planungsphase bereit, auch andere ORMs in Betracht zu ziehen.<\/li>\n<li>Automatische Generierung von Migrationen. Angesichts der Code First-Entwicklung m\u00f6chten wir es gerne vermeiden, Migrationen \u201eh\u00e4ndisch\u201c zu schreiben.<\/li>\n<li>Versionskonflikte. In einer verteilten Entwicklung kann EF Core beim Merge-Konflikten auftreten. Dies wird zu einem erheblichen Problem, da verschiedene Teile der Anwendung von verschiedenen Entwicklern erstellt werden, weshalb viel Zeit f\u00fcr jeden Konflikt aufgewendet werden muss.<\/li>\n<li>Entwickelte Dokumentation und Unterst\u00fctzung. Hier, so glauben wir, sind keine weiteren Erkl\u00e4rungen n\u00f6tig.<\/li>\n<li>Kostenlosigkeit. Das Kriterium ist bedingt, da wir auch nicht sehr teure Systeme oder teure, aber ideale in der Benutzerfreundlichkeit, ebenfalls in Betracht ziehen w\u00fcrden.<\/li>\n<\/ol>\n<p>\nInfolge einer kleinen Untersuchung wurden die folgenden Optionen gefunden und als w\u00fcnschenswert f\u00fcr die Pr\u00fcfung anerkannt:<\/p>\n<ol>\n<li>EF Core Migrations<\/li>\n<li>DBup<\/li>\n<li>RoundhousE<\/li>\n<li>ThinkingHome.Migrator<\/li>\n<li>Fluent Migrator <\/li>\n<\/ol>\n<p><\/p>\n<h3>Nun etwas detaillierter<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/4cb242f230b19073626e36a472dcea50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/ef\/core\/managing-schemas\/migrations\/\">EntityFramework Core Migrations<\/a><\/noindex><\/b><\/p>\n<p>Nat\u00fcrlich war dies die erste und wichtigste Wahl. Ein natives Tool, das sofort ohne besondere Anpassungen funktioniert. Eine gro\u00dfe Menge an Dokumentation, sowohl offizielle als auch weniger offizielle, Einfachheit usw. Dennoch sind die Vorw\u00fcrfe, die gegen das klassische EF erhoben wurden, auch f\u00fcr EF Core durchaus relevant. <\/p>\n<p>Somit ergeben sich f\u00fcr EF Core folgende Vorteile:<\/p>\n<ul>\n<li>Unterst\u00fctzung von Microsoft, Dokumentation, auch auf Russisch, eine riesige Community.<\/li>\n<li>Automatische Erstellung von Migrationen basierend auf CodeFirst.<\/li>\n<li>Im Vergleich zu EF 6 wird in EF Core nun kein Datenbank-Snapshot gespeichert. Bei der Verwendung von EF Core in Code First ist es nun nicht mehr erforderlich, die Datenbank zu starten.<\/li>\n<li>Da wir von Code First ausgehen, gibt es die M\u00f6glichkeit, eine Migration f\u00fcr alle erforderlichen Datenzugriffsanbieter zu f\u00fchren.<\/li>\n<li>Was die Anbieter angeht - sowohl PostgreSQL als auch Oracle usw., und sogar - MS SQL Server :)<\/li>\n<\/ul>\n<p>\n Und auch Nachteile:<\/p>\n<ul>\n<li>Die Konfliktl\u00f6sung blieb auf dem gleichen Niveau. Es m\u00fcssen Mangementfolgen von Migrationen aufgebaut werden und die Datenbank-Snapshots aktualisiert werden.<\/li>\n<li>Abh\u00e4ngigkeit von den Modellen, auf deren Grundlage die Migrationen generiert wurden.<\/li>\n<\/ul>\n<p>\n<b>DbUp<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/02a47718c7b4c618c204c2273b4de50c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/dbup.github.io\/\">dbup.github.io<\/a><\/noindex><\/p>\n<p>DbUp ist eine .NET-Bibliothek, die \u00fcber NuGet installiert wird und hilft, \u00c4nderungen an SQL Server anzuwenden. Sie verfolgt, welche \u00c4nderungs-Skripte bereits ausgef\u00fchrt wurden, und f\u00fchrt diejenigen aus, die zur Aktualisierung der DB erforderlich sind. Die Bibliothek ist aus einem Open-Source-Blog-Engine-Projekt auf ASP.NET hervorgegangen und existiert unter der MIT-Lizenz, der Code befindet sich auf GitHub. Migrationen werden mithilfe von T-SQL beschrieben.<\/p>\n<p>Welche Vorteile gibt es?:<\/p>\n<ul>\n<li>Unterst\u00fctzung einer gro\u00dfen Anzahl von DBMS (MS SQL Server, PostgreSQL, MySQL).<\/li>\n<li>Da die Skripte in T-SQL geschrieben werden, sehen sie ziemlich einfach aus.<\/li>\n<li>Konflikte werden ebenfalls mithilfe von SQL gel\u00f6st.<\/li>\n<\/ul>\n<p>\nUnd die Nachteile:<\/p>\n<ul>\n<li>Trotz der Vielzahl unterst\u00fctzter DBMS geh\u00f6rt Oracle nicht dazu.<\/li>\n<li>Keine Interaktion mit ORM.<\/li>\n<li>Das Schreiben von Skripten in T-SQL 'manuell' ist nicht das, wonach wir gestrebt haben. <\/li>\n<li>Die Dokumentation und die Community sind eher schwach, obwohl sie beim Verfassen von SQL-Skripten m\u00f6glicherweise nicht erforderlich sind.<\/li>\n<\/ul>\n<p>\n<b>RoundhousE<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/ca418187d64e75830b2643dea794c6d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chucknorris\/roundhouse\">github.com\/chucknorris\/roundhouse<\/a><\/noindex><\/p>\n<p>Dieses Migrationsmanagement-Tool, das unter der Lizenz Apache 2.0 verbreitet wird, arbeitet wie das vorherige mit der T-SQL-Migrationsengine. Anscheinend lag den Entwicklern die L\u00f6sung technischer Probleme im Hinblick auf die Unterst\u00fctzung von DBMS am Herzen, nicht die Schaffung eines komfortablen Entwicklungsprozesses.<\/p>\n<p>Vorteile:<\/p>\n<ul>\n<li>Unterst\u00fctzt die erforderlichen DBMS (einschlie\u00dflich Oracle)<\/li>\n<\/ul>\n<p>\nNachteile:<\/p>\n<ul>\n<li>Oracle (und auch der f\u00fcr uns irrelevante Access) wird nicht auf .NET Core unterst\u00fctzt, nur auf .NET Full Framework.<\/li>\n<li>Funktioniert nicht mit ORM<\/li>\n<li>Die Dokumentation ist noch weniger umfangreich als bei dem vorherigen Tool.<\/li>\n<li>Wie auch immer \u2013 die Migrationen werden als Skripte geschrieben.<\/li>\n<\/ul>\n<p>\n<b>ThinkingHome.Migrator<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/c530e23f8c9c27ed1d53f3dce710eb70.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin Tool f\u00fcr die versionierte Migration von Datenbankschemata f\u00fcr die .NET Core-Plattform, das unter der Lizenz MIT verbreitet wird. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/414867\/\">Der Entwickler hat vor fast einem Jahr \u00fcber seine letzte Version geschrieben.<\/a><\/noindex>. <\/p>\n<p>Vorteile:<\/p>\n<ul>\n<li>Auf .NET Core zugeschnitten.<\/li>\n<li>Eine verzweigte Migrationssequenz wurde implementiert.<\/li>\n<li>Migrationslogging wurde implementiert.<\/li>\n<\/ul>\n<p>\nNachteile:<\/p>\n<ul>\n<li>Das letzte Update war vor einem Jahr. Anscheinend wird das Projekt nicht mehr unterst\u00fctzt.<\/li>\n<li>Unterst\u00fctzt kein Oracle (im Artikel wird angegeben, dass dies aufgrund der fehlenden stabilen Implementierung unter .NET Core der Fall ist \u2013 das war vor einem Jahr).<\/li>\n<li>Automatische Migrationserstellung fehlt.<\/li>\n<\/ul>\n<p>\nInsgesamt sieht das Projekt vielversprechend aus, insbesondere wenn es weiterentwickelt wird, aber wir mussten hier und jetzt eine Entscheidung treffen.<\/p>\n<p><b>Fluent Migrator<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/def2f7b9ecd8084975add75ded1a7a71.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fluentmigrator\/fluentmigrator\">github.com\/fluentmigrator\/fluentmigrator<\/a><\/noindex><\/p>\n<p>Das beliebteste Migrationstool mit einer gro\u00dfen Anh\u00e4ngerschaft. Verbreitet unter der Lizenz Apache 2.0. Wie in der Beschreibung angegeben, ist es eine Migrationsplattform f\u00fcr .NET, die Ruby on Rails Migrations \u00e4hnlich ist. \u00c4nderungen am DB-Schema werden in C#-Klassen beschrieben.<\/p>\n<p>Hier gibt es Vorteile:<\/p>\n<ul>\n<li>Unterst\u00fctzung f\u00fcr die erforderlichen DBMS<\/li>\n<li>Unterst\u00fctzung f\u00fcr .NET Core<\/li>\n<li>Eine gro\u00dfe, aktive Community<\/li>\n<li>Konflikte bei Migrationen werden sequenziell gel\u00f6st \u2013 bei Migrationen wird die Ausf\u00fchrungsreihenfolge angegeben. Wenn ein Konflikt um eine Entit\u00e4t auftritt, wird dessen L\u00f6sung beim Mergen des Codes genauso durchgef\u00fchrt wie bei anderem Code.<\/li>\n<li>Es gibt Profile, die nach erfolgreicher Ausf\u00fchrung der Migration ausgef\u00fchrt werden und serviceorientierte Funktionen enthalten k\u00f6nnen. Das letzte Update war vor einem Monat, was bedeutet, dass das Projekt aktiv ist.<\/li>\n<\/ul>\n<p>\nWas die Nachteile betrifft, so sind hier:<\/p>\n<ul>\n<li>Automatische Migrationserstellung fehlt.<\/li>\n<li>Keine Verbindung zu EF-Modellen<\/li>\n<li>Es gibt keine Datenbankschnappsch\u00fcsse.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Wie fiel unsere Wahl aus?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Vergleich und Auswahl von Datentransfersystemen\" src=\"\/wp-content\/uploads\/2019\/05\/db6953bf80bbbf9f560e39b32c32752c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie heftigsten Diskussionen entbrannten um zwei Parameter \u2013 die Auto-Generierung von Migrationen und eine vern\u00fcnftige L\u00f6sung f\u00fcr Konflikte. Andere Faktoren waren weit weniger beunruhigend. Letztlich entschloss sich das Team nach den Diskussionen, im neuen Projekt Fluent Migrator zu verwenden. Denn die L\u00f6sung von Konflikten wird langfristig viel mehr Vorteile bringen.<\/p>\n<h4>Das DBMS Tarantool ist ein attraktives, zukunftstr\u00e4chtiges Produkt zur Erstellung von hochbelasteten Anwendungen.<\/h4>\n<p>\nNat\u00fcrlich gibt es keine perfekten Werkzeuge. So mussten auch wir bei der Auswahl Priorit\u00e4ten in unseren \u201eW\u00fcnschen\u201c setzen. F\u00fcr andere Teams und Aufgaben k\u00f6nnen jedoch andere Faktoren entscheidend sein. Wir hoffen, dass Ihnen dieser Artikel bei der Entscheidungsfindung hilft.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/crosstech\/blog\/453930\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u041c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f, \u0438 \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0411\u0414 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c, \u0438 \u0442\u043e\u0433\u0434\u0430 ORM \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438, \u043d\u043e \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043f\u043e\u0442\u0435\u0440\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26172,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 .\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 .\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vergleich und Auswahl von Datentransfer-Systemen | ProHoster","description":"Vergleich und Auswahl von Datentransfer-Systemen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u043e\u0440 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 .","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:06+00:00","article:modified_time":"2019-10-31T19:00:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34734","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:26:53","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:16:32","updated":"2026-01-21 20:26:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/34734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=34734"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/34734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26172"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=34734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=34734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=34734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}