{"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\/cs\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh","title":{"rendered":"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2>Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" src=\"\/wp-content\/uploads\/2019\/05\/a25cc01b8d86b233a6d21caddb169fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nModel dat v procesu v\u00fdvoje se m\u00e1 tendenci m\u011bnit a v ur\u010dit\u00e9m okam\u017eiku p\u0159est\u00e1v\u00e1 odpov\u00eddat datab\u00e1zi. Samoz\u0159ejm\u011b, \u017ee datab\u00e1zi lze odstranit, a pak ORM vytvo\u0159\u00ed novou verzi, kter\u00e1 bude odpov\u00eddat modelu, ale takov\u00fd postup povede ke ztr\u00e1t\u011b st\u00e1vaj\u00edc\u00edch dat. Funkce syst\u00e9mu migrace tedy spo\u010d\u00edv\u00e1 v tom, aby podle zm\u011bny sch\u00e9matu synchronizoval model dat v aplikaci bez ztr\u00e1ty existuj\u00edc\u00edch dat.<\/p>\n<p>V r\u00e1mci tohoto \u010dl\u00e1nku bychom r\u00e1di prozkoumali r\u016fzn\u00e9 n\u00e1stroje pro spr\u00e1vu migrac\u00ed datab\u00e1z\u00ed. Douf\u00e1me, \u017ee tento p\u0159ehled bude u\u017eite\u010dn\u00fd pro v\u00fdvoj\u00e1\u0159e, kte\u0159\u00ed se s takov\u00fdm v\u00fdb\u011brem setkali.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>\u00dakol<\/h3>\n<p>\nV na\u0161\u00ed spole\u010dnosti se nyn\u00ed aktivn\u011b vyv\u00edj\u00ed n\u00e1sleduj\u00edc\u00ed generace produktu \u2013 Docs Security Suite (DSS). Serverov\u00e1 \u010d\u00e1st je naps\u00e1na v .Net Core a jako SGBD se pou\u017e\u00edv\u00e1 Entity Framework Core. P\u0159i n\u00e1vrhu aplikace pou\u017e\u00edv\u00e1me p\u0159\u00edstup Code First.<\/p>\n<p>Dom\u00e9nov\u00fd model aplikace vytv\u00e1\u0159ej\u00ed sou\u010dasn\u011b n\u011bkolika v\u00fdvoj\u00e1\u0159i \u2013 ka\u017ed\u00fd odpov\u00edd\u00e1 za svou logickou \u010d\u00e1st syst\u00e9mu. <\/p>\n<p>V p\u0159edchoz\u00ed generaci DSS byla jako syst\u00e9m spr\u00e1vy migrac\u00ed pou\u017e\u00edv\u00e1na klasick\u00e1 Entity Framework Migrations (EF 6). Nicm\u00e9n\u011b se k n\u011bmu nahromadily ur\u010dit\u00e9 v\u00fdtky, z nich\u017e hlavn\u00ed spo\u010d\u00edvala v tom, \u017ee v EF chyb\u00ed rozumn\u00fd p\u0159\u00edstup k \u0159e\u0161en\u00ed konflikt\u016f verz\u00ed. Tento fakt n\u00e1s dodnes tr\u00e1p\u00ed p\u0159i oprav\u00e1ch chyb v r\u00e1mci podpory, proto bylo rozhodnuto prozkoumat alternativn\u00ed mo\u017enosti.<\/p>\n<p>V d\u016fsledku diskuse se utvo\u0159ily n\u00e1sleduj\u00edc\u00ed po\u017eadavky na syst\u00e9m spr\u00e1vy migrac\u00ed:<\/p>\n<ol>\n<li>Podpora r\u016fzn\u00fdch SGBD. Povinn\u011b MS SQL Server, PostgreSQL, Oracle, ale potenci\u00e1ln\u011b je mo\u017en\u00e9 pou\u017e\u00edt i dal\u0161\u00ed.<\/li>\n<li>Pr\u00e1ce s ORM. P\u016fvodn\u011b se pl\u00e1novalo pou\u017e\u00edt EF Core, av\u0161ak v n\u00e1vrhov\u00e9 f\u00e1zi jsme byli p\u0159ipraveni zv\u00e1\u017eit i jin\u00e9 ORM.<\/li>\n<li>Autogenerace migrac\u00ed. Vzhledem k v\u00fdvoji Code First bychom se r\u00e1di vyhnuli pot\u0159eb\u011b \"ps\u00e1t ru\u010dn\u011b\" migrace.<\/li>\n<li>Konflikty verz\u00ed. V podm\u00ednk\u00e1ch distribuovan\u00e9ho v\u00fdvoje m\u016f\u017ee p\u0159i mergov\u00e1n\u00ed EF Core doch\u00e1zet ke konflikt\u016fm. To se st\u00e1v\u00e1 v\u00fdznamn\u00fdm probl\u00e9mem, proto\u017ee r\u016fzn\u00e9 \u010d\u00e1sti aplikace vyv\u00edjej\u00ed r\u016fzn\u00ed v\u00fdvoj\u00e1\u0159i, co\u017e si vy\u017eaduje zna\u010dn\u00e9 mno\u017estv\u00ed \u010dasu na ka\u017ed\u00fd<\/li>\n<li>Rozs\u00e1hl\u00e1 dokumentace a podpora. Zde, zd\u00e1 se, nen\u00ed t\u0159eba vysv\u011btlovat<\/li>\n<li>Bezplatnost. Krit\u00e9rium je nepodm\u00edn\u011bn\u00e9, proto\u017ee i docela levn\u00e9 syst\u00e9my nebo drah\u00e9, ale ide\u00e1ln\u00ed v pohodl\u00ed, jsme tak\u00e9 byli ochotni zv\u00e1\u017eit<\/li>\n<\/ol>\n<p>\nV d\u016fsledku mal\u00e9ho pr\u016fzkumu byly nalezeny a uzn\u00e1ny jako \u017e\u00e1douc\u00ed k uv\u00e1\u017een\u00ed n\u00e1sleduj\u00edc\u00ed mo\u017enosti:<\/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>A te\u010f podrobn\u011bji<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" 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>Samoz\u0159ejm\u011b, to byla prvn\u00ed a hlavn\u00ed volba. Nativn\u00ed n\u00e1stroj, kter\u00fd funguje z krabice bez jak\u00fdchkoli komplikac\u00ed. Velk\u00e9 mno\u017estv\u00ed dokumentace, ofici\u00e1ln\u00ed i neofici\u00e1ln\u00ed, jednoduchost atd. Nicm\u00e9n\u011b n\u00e1mitky vznesen\u00e9 v\u016f\u010di klasick\u00e9mu EF jsou zcela aktu\u00e1ln\u00ed i pro EF Core. <\/p>\n<p>Tak\u017ee pro EF Core byly vyzdvi\u017eeny n\u00e1sleduj\u00edc\u00ed v\u00fdhody:<\/p>\n<ul>\n<li>Podpora Microsoftu, dokumentace, v\u010detn\u011b v ru\u0161tin\u011b, obrovsk\u00e1 komunita<\/li>\n<li>Automatick\u00e9 generov\u00e1n\u00ed migrac\u00ed na z\u00e1klad\u011b CodeFirst<\/li>\n<li>Ve srovn\u00e1n\u00ed s EF 6 v EF Core nyn\u00ed nen\u00ed uchov\u00e1v\u00e1na snapshot datab\u00e1ze. P\u0159i pr\u00e1ci s EF Core v Code First nyn\u00ed nen\u00ed nutn\u00e9 obnovovat datab\u00e1zi<\/li>\n<li>Pokud vych\u00e1z\u00edme z Code First \u2013 je zde mo\u017enost veden\u00ed jedn\u00e9 migrace pro v\u0161echny po\u017eadovan\u00e9 datov\u00e9 p\u0159\u00edstupov\u00e9 poskytovatele<\/li>\n<li>Co se t\u00fd\u010de poskytovatel\u016f \u2013 podporov\u00e1no je jak PostgreSQL, tak Oracle atd., a dokonce \u2013 MS SQL Server :)<\/li>\n<\/ul>\n<p>\n A tak\u00e9 nev\u00fdhody:<\/p>\n<ul>\n<li>\u0158e\u0161en\u00ed konflikt\u016f z\u016fstalo na stejn\u00e9 \u00farovni. Je nutn\u00e9 vystav\u011bt sekvenci migrac\u00ed a aktualizovat snapshoty datab\u00e1ze<\/li>\n<li>Z\u00e1vislost na modelech, na jejich\u017e z\u00e1klad\u011b byly migrace vygenerov\u00e1ny<\/li>\n<\/ul>\n<p>\n<b>DbUp<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" 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 je knihovna pro .NET, kter\u00e1 se instalje pomoc\u00ed NuGet a pom\u00e1h\u00e1 aplikovat zm\u011bny na SQL Server. Sleduje, kter\u00e9 skripty zm\u011bn ji\u017e byly provedeny, a spou\u0161t\u00ed ty, kter\u00e9 jsou nezbytn\u00e9 pro aktualizaci datab\u00e1ze. Knihovna vyrostla z projektu open-source blogovac\u00edho motoru na ASP.NET a existuje pod licenc\u00ed MIT, a k\u00f3d je dostupn\u00fd na GitHubu. Migrace jsou pops\u00e1ny pomoc\u00ed T-SQL.<\/p>\n<p>Jak\u00e9 jsou v\u00fdhody:<\/p>\n<ul>\n<li>Podpora velk\u00e9ho mno\u017estv\u00ed SDB (MS SQL Server, PstgreSQL, MySQL)<\/li>\n<li>Proto\u017ee skripty jsou ps\u00e1ny v T-SQL, vypadaj\u00ed docela jednodu\u0161e<\/li>\n<li>Konflikty se tak\u00e9 \u0159e\u0161\u00ed pomoc\u00ed SQL<\/li>\n<\/ul>\n<p>\nAle nev\u00fdhody:<\/p>\n<ul>\n<li>P\u0159esto\u017ee existuje \u0161irok\u00e1 \u0161k\u00e1la podporovan\u00fdch DBMS, Oracle mezi nimi nen\u00ed<\/li>\n<li>Nepracuje s ORM<\/li>\n<li>Ps\u00e1t skripty v T-SQL \u201eru\u010dn\u011b\u201c \u2013 to nen\u00ed to, \u010demu jsme cht\u011bli sm\u011b\u0159ovat <\/li>\n<li>Dokumentace a komunita jsou pr\u016fm\u011brn\u00e9, i kdy\u017e v podm\u00ednk\u00e1ch psan\u00ed SQL skript\u016f to mo\u017en\u00e1 ani nen\u00ed pot\u0159eba.<\/li>\n<\/ul>\n<p>\n<b>RoundhousE<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" 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>Tento n\u00e1stroj pro spr\u00e1vu migrac\u00ed, distribuovan\u00fd pod licenc\u00ed Apache 2.0, stejn\u011b jako p\u0159edchoz\u00ed, pracuje na enginu migrac\u00ed T-SQL. Zd\u00e1 se, \u017ee v\u00fdvoj\u00e1\u0159i p\u0159ednostn\u011b \u0159e\u0161ili technick\u00e9 probl\u00e9my v oblasti podpory DBMS, a ne vytv\u00e1\u0159en\u00ed komfortn\u00edho v\u00fdvoje.<\/p>\n<p>Plusy:<\/p>\n<ul>\n<li>Podporuje pot\u0159ebn\u00e9 DBMS (v\u010detn\u011b Oracle)<\/li>\n<\/ul>\n<p>\nNev\u00fdhody:<\/p>\n<ul>\n<li>Oracle (a tak\u00e9 pro n\u00e1s zastaral\u00fd Access) nen\u00ed podporov\u00e1n na .NET Core, pouze na .NET Full Framework<\/li>\n<li>Nepracuje s ORM<\/li>\n<li>Dokumentace je je\u0161t\u011b m\u00e9n\u011b ne\u017e u p\u0159edchoz\u00edho n\u00e1stroje<\/li>\n<li>Op\u011bt \u2013 migrace jsou ps\u00e1ny skripty<\/li>\n<\/ul>\n<p>\n<b>ThinkingHome.Migrator<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" src=\"\/wp-content\/uploads\/2019\/05\/c530e23f8c9c27ed1d53f3dce710eb70.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e1stroj pro verzionov\u00e1n\u00ed sch\u00e9matu datab\u00e1ze pro platformu .NET Core, distribuovan\u00fd pod licenc\u00ed MIT. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/414867\/\">Samotn\u00fd v\u00fdvoj\u00e1\u0159 psal o jeho posledn\u00ed verzi t\u00e9m\u011b\u0159 p\u0159ed rokem<\/a><\/noindex>. <\/p>\n<p>Plusy:<\/p>\n<ul>\n<li>Zam\u011b\u0159eno na .NET Core<\/li>\n<li>Realizov\u00e1na v\u011btven\u00e1 sekvence migrac\u00ed<\/li>\n<li>Realizov\u00e1no logov\u00e1n\u00ed migrac\u00ed<\/li>\n<\/ul>\n<p>\nNev\u00fdhody:<\/p>\n<ul>\n<li>Posledn\u00ed aktualizace \u2013 p\u0159ed rokem. Zd\u00e1 se, \u017ee projekt nen\u00ed podporov\u00e1n<\/li>\n<li>Nepodporuje Oracle (v \u010dl\u00e1nku je uvedeno, \u017ee je to kv\u016fli absenci stabiln\u00ed implementace pro .NET Core \u2013 ale to p\u0159ed rokem)<\/li>\n<li>Chyb\u00ed automatick\u00e1 generace migrac\u00ed<\/li>\n<\/ul>\n<p>\nCelkov\u011b projekt vypad\u00e1 perspektivn\u011b, zejm\u00e9na pokud by se vyv\u00edjel, ale museli jsme se rozhodnout hned te\u010f.<\/p>\n<p><b>Fluent Migrator<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" 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>Nejobl\u00edben\u011bj\u0161\u00ed n\u00e1stroj pro migrace, kter\u00fd m\u00e1 velkou arm\u00e1du fanou\u0161k\u016f. Distribuov\u00e1n pod licenc\u00ed Apache 2.0. Jak je uvedeno v popisu, je platformou migrace pro .NET, podobn\u011b jako Ruby on Rails Migrations. Zm\u011bny sch\u00e9matu DB jsou pops\u00e1ny ve t\u0159\u00edd\u00e1ch na C#.<\/p>\n<p>Zde jsou v\u00fdhody:<\/p>\n<ul>\n<li>Podpora pot\u0159ebn\u00fdch DBMS<\/li>\n<li>Podpora .NET Core<\/li>\n<li>Velk\u00e1 vyvinut\u00e1 komunita<\/li>\n<li>Konflikty migrac\u00ed se \u0159e\u0161\u00ed sekven\u010dn\u011b \u2013 migrac\u00edm je uveden po\u0159ad\u00ed prov\u00e1d\u011bn\u00ed. Krom\u011b toho, pokud dojde ke konfliktu kolem jedn\u00e9 entity, p\u0159i slou\u010den\u00ed k\u00f3du se jeho \u0159e\u0161en\u00ed prov\u00e1d\u00ed stejn\u011b jako v ostatn\u00edm k\u00f3du<\/li>\n<li>Existuj\u00ed profily, kter\u00e9 se prov\u00e1d\u011bj\u00ed po \u00fasp\u011b\u0161n\u00e9m dokon\u010den\u00ed migrace. Mohou obsahovat slu\u017eby funkce. Posledn\u00ed aktualizace byla p\u0159ed m\u011bs\u00edcem, co\u017e znamen\u00e1, \u017ee projekt st\u00e1le \u017eije.<\/li>\n<\/ul>\n<p>\nPokud jde o nev\u00fdhody, m\u00e1me zde:<\/p>\n<ul>\n<li>Chyb\u00ed automatick\u00e1 generace migrac\u00ed<\/li>\n<li>Chyb\u00ed spojen\u00ed s modely EF.<\/li>\n<li>Nen\u00ed k dispozici \u017e\u00e1dn\u00fd sn\u00edmek datab\u00e1ze.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Jak\u00e1 byla na\u0161e volba?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f migrace dat\" src=\"\/wp-content\/uploads\/2019\/05\/db6953bf80bbbf9f560e39b32c32752c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNejv\u011bt\u0161\u00ed debaty se to\u010dily kolem dvou parametr\u016f \u2013 automatick\u00e1 generace migrac\u00ed a rozumn\u00e9ho \u0159e\u0161en\u00ed konflikt\u016f. Ostatn\u00ed faktory n\u00e1s tolik nevyd\u011bsily. Nakonec, na z\u00e1klad\u011b diskuse, se t\u00fdm rozhodl pou\u017e\u00edt v nov\u00e9m projektu Fluent Migrator. \u0158e\u0161en\u00ed konflikt\u016f v budoucnu p\u0159inese mnohem v\u00edce v\u00fdhod.<\/p>\n<h4>Z\u00e1v\u011bry<\/h4>\n<p>\nSamoz\u0159ejm\u011b, neexistuj\u00ed dokonal\u00e9 n\u00e1stroje. I my jsme museli p\u0159i v\u00fdb\u011bru stanovit priority v na\u0161ich \"p\u0159\u00e1n\u00edch\". Av\u0161ak pro jin\u00e9 t\u00fdmy a \u00fakoly mohou b\u00fdt rozhoduj\u00edc\u00ed jin\u00e9 faktory. Douf\u00e1me, \u017ee tento \u010dl\u00e1nek v\u00e1m pom\u016f\u017ee u\u010dinit rozhodnut\u00ed.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47 Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f pro migraci dat | ProHoster","description":"Srovn\u00e1n\u00ed a v\u00fdb\u011br syst\u00e9m\u016f pro migraci dat.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/sravnenie-i-vybor-sistem-migratsii-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/34734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=34734"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/34734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/26172"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=34734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=34734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=34734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}