<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Using the Data Migration Tool | Dooks</title>
    <meta name="description" content="Dooks">
    <link rel="icon" href="/logo.png">
  <link rel="manifest" href="/manifest.json">
  <meta name="theme-color" content="#3eaf7c">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <link rel="apple-touch-icon" href="/icons/apple-touch-icon-152x152.png">
  <link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#3eaf7c">
  <meta name="msapplication-TileImage" content="/icons/msapplication-icon-144x144.png">
  <meta name="msapplication-TileColor" content="#000000">
    
    <link rel="preload" href="/assets/css/0.styles.cc25976c.css" as="style"><link rel="preload" href="/assets/js/app.bd423434.js" as="script"><link rel="preload" href="/assets/js/538.02147a4b.js" as="script"><link rel="prefetch" href="/assets/js/10.9da330c2.js"><link rel="prefetch" href="/assets/js/100.d27e0eb4.js"><link rel="prefetch" href="/assets/js/101.2f99ca22.js"><link rel="prefetch" href="/assets/js/102.2ec37122.js"><link rel="prefetch" href="/assets/js/103.4f3eaa12.js"><link rel="prefetch" href="/assets/js/104.ae05ae83.js"><link rel="prefetch" href="/assets/js/105.96cd3daf.js"><link rel="prefetch" href="/assets/js/106.5d18b2d8.js"><link rel="prefetch" href="/assets/js/107.56029933.js"><link rel="prefetch" href="/assets/js/108.3a52144d.js"><link rel="prefetch" href="/assets/js/109.0926c35e.js"><link rel="prefetch" href="/assets/js/11.0e48bb61.js"><link rel="prefetch" href="/assets/js/110.a666ad50.js"><link rel="prefetch" href="/assets/js/111.cf9adc27.js"><link rel="prefetch" href="/assets/js/112.88e28f01.js"><link rel="prefetch" href="/assets/js/113.7d577c38.js"><link rel="prefetch" href="/assets/js/114.012106b7.js"><link rel="prefetch" href="/assets/js/115.740e853d.js"><link rel="prefetch" href="/assets/js/116.3c3bf759.js"><link rel="prefetch" href="/assets/js/117.32e61cb1.js"><link rel="prefetch" href="/assets/js/118.71246683.js"><link rel="prefetch" href="/assets/js/119.e5c6a294.js"><link rel="prefetch" href="/assets/js/12.de82d151.js"><link rel="prefetch" href="/assets/js/120.ef6f188a.js"><link rel="prefetch" href="/assets/js/121.937e3bcd.js"><link rel="prefetch" href="/assets/js/122.8db73ac4.js"><link rel="prefetch" href="/assets/js/123.4eac56a7.js"><link rel="prefetch" href="/assets/js/124.b5b094a1.js"><link rel="prefetch" href="/assets/js/125.a637c09e.js"><link rel="prefetch" href="/assets/js/126.881821ae.js"><link rel="prefetch" href="/assets/js/127.898e5a16.js"><link rel="prefetch" href="/assets/js/128.f2d89fba.js"><link rel="prefetch" href="/assets/js/129.00fc26f3.js"><link rel="prefetch" href="/assets/js/13.7319765d.js"><link rel="prefetch" href="/assets/js/130.d5470aeb.js"><link rel="prefetch" href="/assets/js/131.ed21212d.js"><link rel="prefetch" href="/assets/js/132.f53593bc.js"><link rel="prefetch" href="/assets/js/133.e76cfeb5.js"><link rel="prefetch" href="/assets/js/134.8cb07121.js"><link rel="prefetch" href="/assets/js/135.f7f215bb.js"><link rel="prefetch" href="/assets/js/136.4071a54a.js"><link rel="prefetch" href="/assets/js/137.06e2249c.js"><link rel="prefetch" href="/assets/js/138.27a3c699.js"><link rel="prefetch" href="/assets/js/139.a31d502d.js"><link rel="prefetch" href="/assets/js/14.6bb70885.js"><link rel="prefetch" href="/assets/js/140.6d4e34ca.js"><link rel="prefetch" href="/assets/js/141.6b195874.js"><link rel="prefetch" href="/assets/js/142.acc0d646.js"><link rel="prefetch" href="/assets/js/143.c3269f01.js"><link rel="prefetch" href="/assets/js/144.b1834787.js"><link rel="prefetch" href="/assets/js/145.60ba3967.js"><link rel="prefetch" href="/assets/js/146.645b00fe.js"><link rel="prefetch" href="/assets/js/147.a7ad8d65.js"><link rel="prefetch" href="/assets/js/148.c5dfb25a.js"><link rel="prefetch" href="/assets/js/149.37e9cfd6.js"><link rel="prefetch" href="/assets/js/15.d5532964.js"><link rel="prefetch" href="/assets/js/150.3c249598.js"><link rel="prefetch" href="/assets/js/151.9744e2e2.js"><link rel="prefetch" href="/assets/js/152.8d958d5f.js"><link rel="prefetch" href="/assets/js/153.f2575667.js"><link rel="prefetch" href="/assets/js/154.67df61df.js"><link rel="prefetch" href="/assets/js/155.af6028d6.js"><link rel="prefetch" href="/assets/js/156.924bb436.js"><link rel="prefetch" href="/assets/js/157.65322bf6.js"><link rel="prefetch" href="/assets/js/158.3f375315.js"><link rel="prefetch" href="/assets/js/159.f1e350e4.js"><link rel="prefetch" href="/assets/js/16.9443565e.js"><link rel="prefetch" href="/assets/js/160.c8db8466.js"><link rel="prefetch" href="/assets/js/161.048d0bf2.js"><link rel="prefetch" href="/assets/js/162.8725e30b.js"><link rel="prefetch" href="/assets/js/163.a0f43c7a.js"><link rel="prefetch" href="/assets/js/164.487dfb90.js"><link rel="prefetch" href="/assets/js/165.6609561a.js"><link rel="prefetch" href="/assets/js/166.52a17497.js"><link rel="prefetch" href="/assets/js/167.d93d1ac0.js"><link rel="prefetch" href="/assets/js/168.b47c316a.js"><link rel="prefetch" href="/assets/js/169.3a0cb950.js"><link rel="prefetch" href="/assets/js/17.bb09db3c.js"><link rel="prefetch" href="/assets/js/170.393f2c4e.js"><link rel="prefetch" href="/assets/js/171.bb984cdc.js"><link rel="prefetch" href="/assets/js/172.2611b6e9.js"><link rel="prefetch" href="/assets/js/173.101f1543.js"><link rel="prefetch" href="/assets/js/174.8b633bd5.js"><link rel="prefetch" href="/assets/js/175.9225a70b.js"><link rel="prefetch" href="/assets/js/176.a488f0b1.js"><link rel="prefetch" href="/assets/js/177.28e10598.js"><link rel="prefetch" href="/assets/js/178.1c65976c.js"><link rel="prefetch" href="/assets/js/179.2ed7640c.js"><link rel="prefetch" href="/assets/js/18.310b7ff2.js"><link rel="prefetch" href="/assets/js/180.1a0495a5.js"><link rel="prefetch" href="/assets/js/181.6bf636f1.js"><link rel="prefetch" href="/assets/js/182.37efc90e.js"><link rel="prefetch" href="/assets/js/183.b17855b1.js"><link rel="prefetch" href="/assets/js/184.c109a665.js"><link rel="prefetch" href="/assets/js/185.b306e95b.js"><link rel="prefetch" href="/assets/js/186.6d108852.js"><link rel="prefetch" href="/assets/js/187.ab0225d6.js"><link rel="prefetch" href="/assets/js/188.27b7c075.js"><link rel="prefetch" href="/assets/js/189.898caf7c.js"><link rel="prefetch" href="/assets/js/19.15fbad8b.js"><link rel="prefetch" href="/assets/js/190.49a99b58.js"><link rel="prefetch" href="/assets/js/191.42bbdcf8.js"><link rel="prefetch" href="/assets/js/192.1d743852.js"><link rel="prefetch" href="/assets/js/193.a726a680.js"><link rel="prefetch" href="/assets/js/194.ef463ff6.js"><link rel="prefetch" href="/assets/js/195.db1e22ce.js"><link rel="prefetch" href="/assets/js/196.9552c292.js"><link rel="prefetch" href="/assets/js/197.707f67da.js"><link rel="prefetch" href="/assets/js/198.2cbf5832.js"><link rel="prefetch" href="/assets/js/199.6c5bf69e.js"><link rel="prefetch" href="/assets/js/2.78c82aa8.js"><link rel="prefetch" href="/assets/js/20.9a669c93.js"><link rel="prefetch" href="/assets/js/200.410ccd0f.js"><link rel="prefetch" href="/assets/js/201.45dc70e7.js"><link rel="prefetch" href="/assets/js/202.543a9335.js"><link rel="prefetch" href="/assets/js/203.1007af89.js"><link rel="prefetch" href="/assets/js/204.20211528.js"><link rel="prefetch" href="/assets/js/205.e0734f58.js"><link rel="prefetch" href="/assets/js/206.d4059050.js"><link rel="prefetch" href="/assets/js/207.364b0ca8.js"><link rel="prefetch" href="/assets/js/208.7c40126e.js"><link rel="prefetch" href="/assets/js/209.5d2f80ef.js"><link rel="prefetch" href="/assets/js/21.ade12907.js"><link rel="prefetch" href="/assets/js/210.bc40a345.js"><link rel="prefetch" href="/assets/js/211.38128c62.js"><link rel="prefetch" href="/assets/js/212.a774e331.js"><link rel="prefetch" href="/assets/js/213.2e49aaed.js"><link rel="prefetch" href="/assets/js/214.ead4bcd0.js"><link rel="prefetch" href="/assets/js/215.abf9b610.js"><link rel="prefetch" href="/assets/js/216.2eaa4973.js"><link rel="prefetch" href="/assets/js/217.cccbc23c.js"><link rel="prefetch" href="/assets/js/218.bcae8955.js"><link rel="prefetch" href="/assets/js/219.83c3b5cb.js"><link rel="prefetch" href="/assets/js/22.94366fcf.js"><link rel="prefetch" href="/assets/js/220.ef06ecdb.js"><link rel="prefetch" href="/assets/js/221.189715b3.js"><link rel="prefetch" href="/assets/js/222.97fcbabe.js"><link rel="prefetch" href="/assets/js/223.94e7e93e.js"><link rel="prefetch" href="/assets/js/224.4ee49632.js"><link rel="prefetch" href="/assets/js/225.03e48bf0.js"><link rel="prefetch" href="/assets/js/226.c9c62b34.js"><link rel="prefetch" href="/assets/js/227.628d0d41.js"><link rel="prefetch" href="/assets/js/228.3aef9074.js"><link rel="prefetch" href="/assets/js/229.7f440aef.js"><link rel="prefetch" href="/assets/js/23.6dc36781.js"><link rel="prefetch" href="/assets/js/230.a84b23e3.js"><link rel="prefetch" href="/assets/js/231.79c1b1c2.js"><link rel="prefetch" href="/assets/js/232.6d92a734.js"><link rel="prefetch" href="/assets/js/233.e251c898.js"><link rel="prefetch" href="/assets/js/234.ca021020.js"><link rel="prefetch" href="/assets/js/235.0d4d9a8b.js"><link rel="prefetch" href="/assets/js/236.49fdd4dc.js"><link rel="prefetch" href="/assets/js/237.5f6efdb7.js"><link rel="prefetch" href="/assets/js/238.4c1211f1.js"><link rel="prefetch" href="/assets/js/239.79ee0efe.js"><link rel="prefetch" href="/assets/js/24.87b71ed7.js"><link rel="prefetch" href="/assets/js/240.57c40b18.js"><link rel="prefetch" href="/assets/js/241.9784a063.js"><link rel="prefetch" href="/assets/js/242.9aa933fe.js"><link rel="prefetch" href="/assets/js/243.f26d8746.js"><link rel="prefetch" href="/assets/js/244.a92b74cc.js"><link rel="prefetch" href="/assets/js/245.23c04246.js"><link rel="prefetch" href="/assets/js/246.2bdb3e72.js"><link rel="prefetch" href="/assets/js/247.dafb8b92.js"><link rel="prefetch" href="/assets/js/248.23706673.js"><link rel="prefetch" href="/assets/js/249.bf7c3854.js"><link rel="prefetch" href="/assets/js/25.c2d0eb9e.js"><link rel="prefetch" href="/assets/js/250.48e62d58.js"><link rel="prefetch" href="/assets/js/251.ac008b3d.js"><link rel="prefetch" href="/assets/js/252.ebdd5e71.js"><link rel="prefetch" href="/assets/js/253.965e6a57.js"><link rel="prefetch" href="/assets/js/254.3943f18d.js"><link rel="prefetch" href="/assets/js/255.4a8765de.js"><link rel="prefetch" href="/assets/js/256.fa88f429.js"><link rel="prefetch" href="/assets/js/257.471152b4.js"><link rel="prefetch" href="/assets/js/258.a6ef02c6.js"><link rel="prefetch" href="/assets/js/259.e5701060.js"><link rel="prefetch" href="/assets/js/26.c3d3858b.js"><link rel="prefetch" href="/assets/js/260.2b91e3dc.js"><link rel="prefetch" href="/assets/js/261.ac49b937.js"><link rel="prefetch" href="/assets/js/262.cc999e38.js"><link rel="prefetch" href="/assets/js/263.b57a2167.js"><link rel="prefetch" href="/assets/js/264.96545285.js"><link rel="prefetch" href="/assets/js/265.f0f742f2.js"><link rel="prefetch" href="/assets/js/266.9a683b7f.js"><link rel="prefetch" href="/assets/js/267.1a011eb5.js"><link rel="prefetch" href="/assets/js/268.99ec9ba7.js"><link rel="prefetch" href="/assets/js/269.e295776d.js"><link rel="prefetch" href="/assets/js/27.43ef183e.js"><link rel="prefetch" href="/assets/js/270.09f384b1.js"><link rel="prefetch" href="/assets/js/271.456c0602.js"><link rel="prefetch" href="/assets/js/272.f3a266d9.js"><link rel="prefetch" href="/assets/js/273.2ddc1bd8.js"><link rel="prefetch" href="/assets/js/274.f8164501.js"><link rel="prefetch" href="/assets/js/275.f74a642a.js"><link rel="prefetch" href="/assets/js/276.babd39af.js"><link rel="prefetch" href="/assets/js/277.a6cc4788.js"><link rel="prefetch" href="/assets/js/278.2a126b26.js"><link rel="prefetch" href="/assets/js/279.3b7ab924.js"><link rel="prefetch" href="/assets/js/28.1f4dca15.js"><link rel="prefetch" href="/assets/js/280.655351c0.js"><link rel="prefetch" href="/assets/js/281.c16161a7.js"><link rel="prefetch" href="/assets/js/282.5b9e04d2.js"><link rel="prefetch" href="/assets/js/283.ebd8d2df.js"><link rel="prefetch" href="/assets/js/284.d2324d4c.js"><link rel="prefetch" href="/assets/js/285.9dd4b6ea.js"><link rel="prefetch" href="/assets/js/286.3ac7afbb.js"><link rel="prefetch" href="/assets/js/287.119aaa1f.js"><link rel="prefetch" href="/assets/js/288.922fc7e1.js"><link rel="prefetch" href="/assets/js/289.73b200e2.js"><link rel="prefetch" href="/assets/js/29.2b485d8b.js"><link rel="prefetch" href="/assets/js/290.57a494dd.js"><link rel="prefetch" href="/assets/js/291.773f41a0.js"><link rel="prefetch" href="/assets/js/292.d36f7245.js"><link rel="prefetch" href="/assets/js/293.b30146d5.js"><link rel="prefetch" href="/assets/js/294.5ff6f139.js"><link rel="prefetch" href="/assets/js/295.7e238406.js"><link rel="prefetch" href="/assets/js/296.3042f8b0.js"><link rel="prefetch" href="/assets/js/297.efc22398.js"><link rel="prefetch" href="/assets/js/298.e6224ce8.js"><link rel="prefetch" href="/assets/js/299.705f8a2b.js"><link rel="prefetch" href="/assets/js/3.9a388d25.js"><link rel="prefetch" href="/assets/js/30.b0ccb95a.js"><link rel="prefetch" href="/assets/js/300.0fb4b12a.js"><link rel="prefetch" href="/assets/js/301.30093b5a.js"><link rel="prefetch" href="/assets/js/302.3ea85912.js"><link rel="prefetch" href="/assets/js/303.cda379b0.js"><link rel="prefetch" href="/assets/js/304.66fb5033.js"><link rel="prefetch" href="/assets/js/305.4555a51d.js"><link rel="prefetch" href="/assets/js/306.ea9dfaf5.js"><link rel="prefetch" href="/assets/js/307.e28898fc.js"><link rel="prefetch" href="/assets/js/308.5cb25a30.js"><link rel="prefetch" href="/assets/js/309.5aa67364.js"><link rel="prefetch" href="/assets/js/31.e8824984.js"><link rel="prefetch" href="/assets/js/310.d021f908.js"><link rel="prefetch" href="/assets/js/311.bbdc7568.js"><link rel="prefetch" href="/assets/js/312.009153cf.js"><link rel="prefetch" href="/assets/js/313.69b57c2e.js"><link rel="prefetch" href="/assets/js/314.aff0eadc.js"><link rel="prefetch" href="/assets/js/315.c71c86be.js"><link rel="prefetch" href="/assets/js/316.c46a9292.js"><link rel="prefetch" href="/assets/js/317.3fbb7349.js"><link rel="prefetch" href="/assets/js/318.b8b0b3a7.js"><link rel="prefetch" href="/assets/js/319.48d09d70.js"><link rel="prefetch" href="/assets/js/32.b2e7863a.js"><link rel="prefetch" href="/assets/js/320.71c644ef.js"><link rel="prefetch" href="/assets/js/321.9e740806.js"><link rel="prefetch" href="/assets/js/322.b4e59349.js"><link rel="prefetch" href="/assets/js/323.903dadb3.js"><link rel="prefetch" href="/assets/js/324.fbd7912e.js"><link rel="prefetch" href="/assets/js/325.3cfeded7.js"><link rel="prefetch" href="/assets/js/326.527335e1.js"><link rel="prefetch" href="/assets/js/327.c5644283.js"><link rel="prefetch" href="/assets/js/328.a17a039f.js"><link rel="prefetch" href="/assets/js/329.08b938c5.js"><link rel="prefetch" href="/assets/js/33.ba0f3869.js"><link rel="prefetch" href="/assets/js/330.3667cd04.js"><link rel="prefetch" href="/assets/js/331.841e82b3.js"><link rel="prefetch" href="/assets/js/332.458d0e79.js"><link rel="prefetch" href="/assets/js/333.65b05deb.js"><link rel="prefetch" href="/assets/js/334.683f3794.js"><link rel="prefetch" href="/assets/js/335.dae977bf.js"><link rel="prefetch" href="/assets/js/336.b624da22.js"><link rel="prefetch" href="/assets/js/337.ee890ba5.js"><link rel="prefetch" href="/assets/js/338.099b25b3.js"><link rel="prefetch" href="/assets/js/339.9fe5cbbe.js"><link rel="prefetch" href="/assets/js/34.aa1b5b6b.js"><link rel="prefetch" href="/assets/js/340.047b095d.js"><link rel="prefetch" href="/assets/js/341.fbd7ad90.js"><link rel="prefetch" href="/assets/js/342.0532eda4.js"><link rel="prefetch" href="/assets/js/343.08943db8.js"><link rel="prefetch" href="/assets/js/344.1e40e7bd.js"><link rel="prefetch" href="/assets/js/345.ecf6b403.js"><link rel="prefetch" href="/assets/js/346.90a55938.js"><link rel="prefetch" href="/assets/js/347.f24ab2f3.js"><link rel="prefetch" href="/assets/js/348.c9b161eb.js"><link rel="prefetch" href="/assets/js/349.1a1028e7.js"><link rel="prefetch" href="/assets/js/35.b4572c21.js"><link rel="prefetch" href="/assets/js/350.d7e31e50.js"><link rel="prefetch" href="/assets/js/351.08431dbb.js"><link rel="prefetch" href="/assets/js/352.dcc7f52f.js"><link rel="prefetch" href="/assets/js/353.c9596010.js"><link rel="prefetch" href="/assets/js/354.3514e57e.js"><link rel="prefetch" href="/assets/js/355.b94388e5.js"><link rel="prefetch" href="/assets/js/356.cbc0df2c.js"><link rel="prefetch" href="/assets/js/357.b68387f0.js"><link rel="prefetch" href="/assets/js/358.47105e3a.js"><link rel="prefetch" href="/assets/js/359.68c84dcd.js"><link rel="prefetch" href="/assets/js/36.fe4995d8.js"><link rel="prefetch" href="/assets/js/360.f38fbe25.js"><link rel="prefetch" href="/assets/js/361.35d340d5.js"><link rel="prefetch" href="/assets/js/362.f6d256f3.js"><link rel="prefetch" href="/assets/js/363.1f3a3292.js"><link rel="prefetch" href="/assets/js/364.abba14a7.js"><link rel="prefetch" href="/assets/js/365.cf93b650.js"><link rel="prefetch" href="/assets/js/366.124d97a2.js"><link rel="prefetch" href="/assets/js/367.a8b8bf30.js"><link rel="prefetch" href="/assets/js/368.265790e9.js"><link rel="prefetch" href="/assets/js/369.51d4f2bf.js"><link rel="prefetch" href="/assets/js/37.9c31946c.js"><link rel="prefetch" href="/assets/js/370.08f88b9c.js"><link rel="prefetch" href="/assets/js/371.0faf021b.js"><link rel="prefetch" href="/assets/js/372.20757cb3.js"><link rel="prefetch" href="/assets/js/373.9d61f65d.js"><link rel="prefetch" href="/assets/js/374.e81b7362.js"><link rel="prefetch" href="/assets/js/375.fe4130af.js"><link rel="prefetch" href="/assets/js/376.25062356.js"><link rel="prefetch" href="/assets/js/377.24fc28b3.js"><link rel="prefetch" href="/assets/js/378.0795e91c.js"><link rel="prefetch" href="/assets/js/379.d9d6a7af.js"><link rel="prefetch" href="/assets/js/38.8b0ad989.js"><link rel="prefetch" href="/assets/js/380.4711336e.js"><link rel="prefetch" href="/assets/js/381.0fce834a.js"><link rel="prefetch" href="/assets/js/382.66650f20.js"><link rel="prefetch" href="/assets/js/383.75e60086.js"><link rel="prefetch" href="/assets/js/384.002c7c07.js"><link rel="prefetch" href="/assets/js/385.9105a75c.js"><link rel="prefetch" href="/assets/js/386.237c317d.js"><link rel="prefetch" href="/assets/js/387.8d22e513.js"><link rel="prefetch" href="/assets/js/388.9b2998c8.js"><link rel="prefetch" href="/assets/js/389.f8d07f66.js"><link rel="prefetch" href="/assets/js/39.07af9271.js"><link rel="prefetch" href="/assets/js/390.4c717311.js"><link rel="prefetch" href="/assets/js/391.00b705dc.js"><link rel="prefetch" href="/assets/js/392.aec3e2b7.js"><link rel="prefetch" href="/assets/js/393.4970a3a8.js"><link rel="prefetch" href="/assets/js/394.f5f2b88c.js"><link rel="prefetch" href="/assets/js/395.d06eaa9a.js"><link rel="prefetch" href="/assets/js/396.727a6ffc.js"><link rel="prefetch" href="/assets/js/397.21809c06.js"><link rel="prefetch" href="/assets/js/398.0dbed4f4.js"><link rel="prefetch" href="/assets/js/399.82508e5e.js"><link rel="prefetch" href="/assets/js/4.95aed454.js"><link rel="prefetch" href="/assets/js/40.0bc5f00e.js"><link rel="prefetch" href="/assets/js/400.111a4190.js"><link rel="prefetch" href="/assets/js/401.ca7797fc.js"><link rel="prefetch" href="/assets/js/402.11e2be62.js"><link rel="prefetch" href="/assets/js/403.f403fa5e.js"><link rel="prefetch" href="/assets/js/404.c6a6aa60.js"><link rel="prefetch" href="/assets/js/405.86f69522.js"><link rel="prefetch" href="/assets/js/406.4f777c33.js"><link rel="prefetch" href="/assets/js/407.9294a541.js"><link rel="prefetch" href="/assets/js/408.27b5f899.js"><link rel="prefetch" href="/assets/js/409.c22d60ea.js"><link rel="prefetch" href="/assets/js/41.ef044bd9.js"><link rel="prefetch" href="/assets/js/410.30e330e6.js"><link rel="prefetch" href="/assets/js/411.9c4916c1.js"><link rel="prefetch" href="/assets/js/412.025eaa8d.js"><link rel="prefetch" href="/assets/js/413.40325d31.js"><link rel="prefetch" href="/assets/js/414.261cdd74.js"><link rel="prefetch" href="/assets/js/415.a736268c.js"><link rel="prefetch" href="/assets/js/416.028ea4c4.js"><link rel="prefetch" href="/assets/js/417.f33f215f.js"><link rel="prefetch" href="/assets/js/418.d6bfdba8.js"><link rel="prefetch" href="/assets/js/419.444e984c.js"><link rel="prefetch" href="/assets/js/42.4b090312.js"><link rel="prefetch" href="/assets/js/420.1fb32eee.js"><link rel="prefetch" href="/assets/js/421.8514af4e.js"><link rel="prefetch" href="/assets/js/422.bb29caba.js"><link rel="prefetch" href="/assets/js/423.1975570c.js"><link rel="prefetch" href="/assets/js/424.a5b5a170.js"><link rel="prefetch" href="/assets/js/425.757d5732.js"><link rel="prefetch" href="/assets/js/426.7010be66.js"><link rel="prefetch" href="/assets/js/427.1e31616a.js"><link rel="prefetch" href="/assets/js/428.e3423911.js"><link rel="prefetch" href="/assets/js/429.2072b8ea.js"><link rel="prefetch" href="/assets/js/43.af7a0d97.js"><link rel="prefetch" href="/assets/js/430.5def6307.js"><link rel="prefetch" href="/assets/js/431.1d794156.js"><link rel="prefetch" href="/assets/js/432.cfa7c087.js"><link rel="prefetch" href="/assets/js/433.ddf15e25.js"><link rel="prefetch" href="/assets/js/434.236ed829.js"><link rel="prefetch" href="/assets/js/435.5de1c51c.js"><link rel="prefetch" href="/assets/js/436.2692b7a7.js"><link rel="prefetch" href="/assets/js/437.d155f4a8.js"><link rel="prefetch" href="/assets/js/438.7fe194d7.js"><link rel="prefetch" href="/assets/js/439.dc2784cd.js"><link rel="prefetch" href="/assets/js/44.bd97a1a0.js"><link rel="prefetch" href="/assets/js/440.28016863.js"><link rel="prefetch" href="/assets/js/441.6dc0a7af.js"><link rel="prefetch" href="/assets/js/442.c8ed6dd1.js"><link rel="prefetch" href="/assets/js/443.481bc627.js"><link rel="prefetch" href="/assets/js/444.452622b2.js"><link rel="prefetch" href="/assets/js/445.8557e0b4.js"><link rel="prefetch" href="/assets/js/446.c5473eda.js"><link rel="prefetch" href="/assets/js/447.21d247a1.js"><link rel="prefetch" href="/assets/js/448.0403daf6.js"><link rel="prefetch" href="/assets/js/449.013f7dc2.js"><link rel="prefetch" href="/assets/js/45.241d3eca.js"><link rel="prefetch" href="/assets/js/450.1c93f0b3.js"><link rel="prefetch" href="/assets/js/451.76d0cb7c.js"><link rel="prefetch" href="/assets/js/452.a547eb36.js"><link rel="prefetch" href="/assets/js/453.2f2e8dd6.js"><link rel="prefetch" href="/assets/js/454.013354c5.js"><link rel="prefetch" href="/assets/js/455.9568f0fe.js"><link rel="prefetch" href="/assets/js/456.d6d9f8a4.js"><link rel="prefetch" href="/assets/js/457.7bc42e44.js"><link rel="prefetch" href="/assets/js/458.234c2dbd.js"><link rel="prefetch" href="/assets/js/459.04e78026.js"><link rel="prefetch" href="/assets/js/46.a4678c27.js"><link rel="prefetch" href="/assets/js/460.f5b5debd.js"><link rel="prefetch" href="/assets/js/461.a70ee112.js"><link rel="prefetch" href="/assets/js/462.e4734c67.js"><link rel="prefetch" href="/assets/js/463.fd27222f.js"><link rel="prefetch" href="/assets/js/464.3b4de1cc.js"><link rel="prefetch" href="/assets/js/465.f371f9ba.js"><link rel="prefetch" href="/assets/js/466.9c96f782.js"><link rel="prefetch" href="/assets/js/467.1742c3b2.js"><link rel="prefetch" href="/assets/js/468.240c189c.js"><link rel="prefetch" href="/assets/js/469.5a246282.js"><link rel="prefetch" href="/assets/js/47.fb273717.js"><link rel="prefetch" href="/assets/js/470.71b321cb.js"><link rel="prefetch" href="/assets/js/471.538230e3.js"><link rel="prefetch" href="/assets/js/472.da51e719.js"><link rel="prefetch" href="/assets/js/473.efa04814.js"><link rel="prefetch" href="/assets/js/474.e298d396.js"><link rel="prefetch" href="/assets/js/475.16707234.js"><link rel="prefetch" href="/assets/js/476.217e5af9.js"><link rel="prefetch" href="/assets/js/477.56b627af.js"><link rel="prefetch" href="/assets/js/478.4f1dd671.js"><link rel="prefetch" href="/assets/js/479.24f450f9.js"><link rel="prefetch" href="/assets/js/48.b30ddbd5.js"><link rel="prefetch" href="/assets/js/480.a31839f4.js"><link rel="prefetch" href="/assets/js/481.d63479d8.js"><link rel="prefetch" href="/assets/js/482.4ad51c89.js"><link rel="prefetch" href="/assets/js/483.2e41dcce.js"><link rel="prefetch" href="/assets/js/484.1408820e.js"><link rel="prefetch" href="/assets/js/485.407718d6.js"><link rel="prefetch" href="/assets/js/486.f16c0b95.js"><link rel="prefetch" href="/assets/js/487.e38ed346.js"><link rel="prefetch" href="/assets/js/488.5d1df12c.js"><link rel="prefetch" href="/assets/js/489.2c35f595.js"><link rel="prefetch" href="/assets/js/49.012ab2b5.js"><link rel="prefetch" href="/assets/js/490.1ba5d079.js"><link rel="prefetch" href="/assets/js/491.7335e5af.js"><link rel="prefetch" href="/assets/js/492.7aff8d15.js"><link rel="prefetch" href="/assets/js/493.26a532f3.js"><link rel="prefetch" href="/assets/js/494.1746116e.js"><link rel="prefetch" href="/assets/js/495.5b715463.js"><link rel="prefetch" href="/assets/js/496.058db4c4.js"><link rel="prefetch" href="/assets/js/497.70b69323.js"><link rel="prefetch" href="/assets/js/498.8eb78ac6.js"><link rel="prefetch" href="/assets/js/499.213e2432.js"><link rel="prefetch" href="/assets/js/5.23c01ef0.js"><link rel="prefetch" href="/assets/js/50.cc9e154c.js"><link rel="prefetch" href="/assets/js/500.ed55935d.js"><link rel="prefetch" href="/assets/js/501.aa65942c.js"><link rel="prefetch" href="/assets/js/502.22b33b2f.js"><link rel="prefetch" href="/assets/js/503.77f57631.js"><link rel="prefetch" href="/assets/js/504.48dfe673.js"><link rel="prefetch" href="/assets/js/505.52e9fd16.js"><link rel="prefetch" href="/assets/js/506.7ba96971.js"><link rel="prefetch" href="/assets/js/507.1c5e0a05.js"><link rel="prefetch" href="/assets/js/508.76972a9f.js"><link rel="prefetch" href="/assets/js/509.9d849093.js"><link rel="prefetch" href="/assets/js/51.c4a3a9c3.js"><link rel="prefetch" href="/assets/js/510.4a183cb3.js"><link rel="prefetch" href="/assets/js/511.6f168287.js"><link rel="prefetch" href="/assets/js/512.ff926005.js"><link rel="prefetch" href="/assets/js/513.e2ce740e.js"><link rel="prefetch" href="/assets/js/514.d61eeb4d.js"><link rel="prefetch" href="/assets/js/515.d2fd4767.js"><link rel="prefetch" href="/assets/js/516.0b776097.js"><link rel="prefetch" href="/assets/js/517.b6977b47.js"><link rel="prefetch" href="/assets/js/518.d975943a.js"><link rel="prefetch" href="/assets/js/519.bfc0fae0.js"><link rel="prefetch" href="/assets/js/52.bfdc8d72.js"><link rel="prefetch" href="/assets/js/520.a7a545e6.js"><link rel="prefetch" href="/assets/js/521.2e6a6297.js"><link rel="prefetch" href="/assets/js/522.8eed6b02.js"><link rel="prefetch" href="/assets/js/523.99e380d9.js"><link rel="prefetch" href="/assets/js/524.ea1d9568.js"><link rel="prefetch" href="/assets/js/525.059724bb.js"><link rel="prefetch" href="/assets/js/526.61fc54cc.js"><link rel="prefetch" href="/assets/js/527.8eb0f88b.js"><link rel="prefetch" href="/assets/js/528.7b5b6ce4.js"><link rel="prefetch" href="/assets/js/529.7f8d6fa3.js"><link rel="prefetch" href="/assets/js/53.1472f3ef.js"><link rel="prefetch" href="/assets/js/530.e758f547.js"><link rel="prefetch" href="/assets/js/531.3fecbd85.js"><link rel="prefetch" href="/assets/js/532.bffba344.js"><link rel="prefetch" href="/assets/js/533.abbcfa8b.js"><link rel="prefetch" href="/assets/js/534.1d4b732b.js"><link rel="prefetch" href="/assets/js/535.f06e34a6.js"><link rel="prefetch" href="/assets/js/536.7ff4bf08.js"><link rel="prefetch" href="/assets/js/537.40881ba9.js"><link rel="prefetch" href="/assets/js/539.8bc65b4f.js"><link rel="prefetch" href="/assets/js/54.c99e3f2b.js"><link rel="prefetch" href="/assets/js/540.6930cd5c.js"><link rel="prefetch" href="/assets/js/541.c7704bf6.js"><link rel="prefetch" href="/assets/js/542.780b05f0.js"><link rel="prefetch" href="/assets/js/543.87fc1a20.js"><link rel="prefetch" href="/assets/js/544.1463b4da.js"><link rel="prefetch" href="/assets/js/545.7d8b5909.js"><link rel="prefetch" href="/assets/js/546.9eada749.js"><link rel="prefetch" href="/assets/js/547.59b0e148.js"><link rel="prefetch" href="/assets/js/548.fcacb438.js"><link rel="prefetch" href="/assets/js/549.fecc1cb4.js"><link rel="prefetch" href="/assets/js/55.bd7c7097.js"><link rel="prefetch" href="/assets/js/550.306c50b7.js"><link rel="prefetch" href="/assets/js/551.3e02eb9c.js"><link rel="prefetch" href="/assets/js/552.f42689a7.js"><link rel="prefetch" href="/assets/js/553.f1741388.js"><link rel="prefetch" href="/assets/js/554.9c7bb7de.js"><link rel="prefetch" href="/assets/js/555.94783ed7.js"><link rel="prefetch" href="/assets/js/556.928327f2.js"><link rel="prefetch" href="/assets/js/557.5313221c.js"><link rel="prefetch" href="/assets/js/558.e3419bf6.js"><link rel="prefetch" href="/assets/js/559.760b377a.js"><link rel="prefetch" href="/assets/js/56.a4d0c1b9.js"><link rel="prefetch" href="/assets/js/560.9e83028c.js"><link rel="prefetch" href="/assets/js/561.88a11c3e.js"><link rel="prefetch" href="/assets/js/562.9571784b.js"><link rel="prefetch" href="/assets/js/563.47a40ee0.js"><link rel="prefetch" href="/assets/js/564.2907b31f.js"><link rel="prefetch" href="/assets/js/565.7d3f4d12.js"><link rel="prefetch" href="/assets/js/566.bb2fa126.js"><link rel="prefetch" href="/assets/js/567.6ec070d8.js"><link rel="prefetch" href="/assets/js/568.17a85a96.js"><link rel="prefetch" href="/assets/js/569.b92ffad2.js"><link rel="prefetch" href="/assets/js/57.d1ecefc7.js"><link rel="prefetch" href="/assets/js/570.0e1b5fea.js"><link rel="prefetch" href="/assets/js/571.80faeebd.js"><link rel="prefetch" href="/assets/js/572.33154b61.js"><link rel="prefetch" href="/assets/js/573.a3637de5.js"><link rel="prefetch" href="/assets/js/574.203b3a07.js"><link rel="prefetch" href="/assets/js/575.a5c3a640.js"><link rel="prefetch" href="/assets/js/576.5f8a8380.js"><link rel="prefetch" href="/assets/js/577.61c9a762.js"><link rel="prefetch" href="/assets/js/58.0b4d9329.js"><link rel="prefetch" href="/assets/js/59.1894f60b.js"><link rel="prefetch" href="/assets/js/6.470b1653.js"><link rel="prefetch" href="/assets/js/60.276bf1df.js"><link rel="prefetch" href="/assets/js/61.5212fce9.js"><link rel="prefetch" href="/assets/js/62.fe7dcb17.js"><link rel="prefetch" href="/assets/js/63.e3b1bcbc.js"><link rel="prefetch" href="/assets/js/64.3eb19122.js"><link rel="prefetch" href="/assets/js/65.92303e48.js"><link rel="prefetch" href="/assets/js/66.74da8462.js"><link rel="prefetch" href="/assets/js/67.7d592d80.js"><link rel="prefetch" href="/assets/js/68.c8c7d0fc.js"><link rel="prefetch" href="/assets/js/69.a9f39355.js"><link rel="prefetch" href="/assets/js/7.3d112cdd.js"><link rel="prefetch" href="/assets/js/70.59c3c7fe.js"><link rel="prefetch" href="/assets/js/71.da3015fd.js"><link rel="prefetch" href="/assets/js/72.910177c5.js"><link rel="prefetch" href="/assets/js/73.5b600f80.js"><link rel="prefetch" href="/assets/js/74.974bd424.js"><link rel="prefetch" href="/assets/js/75.7615b9f3.js"><link rel="prefetch" href="/assets/js/76.754b744f.js"><link rel="prefetch" href="/assets/js/77.f03b866c.js"><link rel="prefetch" href="/assets/js/78.9c87963a.js"><link rel="prefetch" href="/assets/js/79.63ef643f.js"><link rel="prefetch" href="/assets/js/8.fbb56eb8.js"><link rel="prefetch" href="/assets/js/80.b6e20315.js"><link rel="prefetch" href="/assets/js/81.c4e59f39.js"><link rel="prefetch" href="/assets/js/82.07df7ff6.js"><link rel="prefetch" href="/assets/js/83.64887498.js"><link rel="prefetch" href="/assets/js/84.28a0c848.js"><link rel="prefetch" href="/assets/js/85.8d80a7e3.js"><link rel="prefetch" href="/assets/js/86.c645461b.js"><link rel="prefetch" href="/assets/js/87.bbcf234c.js"><link rel="prefetch" href="/assets/js/88.6c45d3ea.js"><link rel="prefetch" href="/assets/js/89.80b243be.js"><link rel="prefetch" href="/assets/js/9.3d32ed68.js"><link rel="prefetch" href="/assets/js/90.a30d269f.js"><link rel="prefetch" href="/assets/js/91.d7ac739a.js"><link rel="prefetch" href="/assets/js/92.9cc8fb64.js"><link rel="prefetch" href="/assets/js/93.b67814e3.js"><link rel="prefetch" href="/assets/js/94.4fc79fd5.js"><link rel="prefetch" href="/assets/js/95.aeb61f16.js"><link rel="prefetch" href="/assets/js/96.a4cb4afa.js"><link rel="prefetch" href="/assets/js/97.c34cf2b1.js"><link rel="prefetch" href="/assets/js/98.bf843bab.js"><link rel="prefetch" href="/assets/js/99.0e666e60.js">
    <link rel="stylesheet" href="/assets/css/0.styles.cc25976c.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Dooks</span></a> <div class="links" style="max-width:nullpx;"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Dooks</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Quick Start</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/dooks/introduction.html" class="nav-link">introduction</a></li><li class="dropdown-subitem"><a href="/dooks/setting-up.html" class="nav-link">setting-up</a></li></ul></li><li class="dropdown-item"><h4>Modules</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/dooks/crm/" class="nav-link">Customer Relationship Management</a></li><li class="dropdown-subitem"><a href="/dooks/selling.html" class="nav-link">Selling</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Languages</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/framework/data/using-data-migration-tool.html" class="nav-link router-link-exact-active router-link-active">English</a></li><li class="dropdown-item"><!----> <a href="/fr/" class="nav-link">Français</a></li></ul></div></div> <a href="https://gitlab.com/dooks/dooks" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitLab
    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links"><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Dooks</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Quick Start</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/dooks/introduction.html" class="nav-link">introduction</a></li><li class="dropdown-subitem"><a href="/dooks/setting-up.html" class="nav-link">setting-up</a></li></ul></li><li class="dropdown-item"><h4>Modules</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/dooks/crm/" class="nav-link">Customer Relationship Management</a></li><li class="dropdown-subitem"><a href="/dooks/selling.html" class="nav-link">Selling</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">Languages</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/framework/data/using-data-migration-tool.html" class="nav-link router-link-exact-active router-link-active">English</a></li><li class="dropdown-item"><!----> <a href="/fr/" class="nav-link">Français</a></li></ul></div></div> <a href="https://gitlab.com/dooks/dooks" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitLab
    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav>  <!----> </div> <div class="page"> <div class="content"><h1 id="using-the-data-migration-tool"><a href="#using-the-data-migration-tool" aria-hidden="true" class="header-anchor">#</a> Using the Data Migration Tool</h1> <blockquote><p>Data Migration Tool was introduced in Frappe Framework version 9.</p></blockquote> <p>The Data Migration Tool was built to abstract all the syncing of data between a remote source and a DocType. This is a middleware layer between your Frappe based website and a remote data source.</p> <p>To understand this tool, let's make a connector to push ERPNext Items to an imaginary service called Atlas.</p> <h3 id="data-migration-plan"><a href="#data-migration-plan" aria-hidden="true" class="header-anchor">#</a> Data Migration Plan</h3> <p>A Data Migration Plan encapsulates a set of mappings.</p> <p>Let's make a new <em>Data Migration Plan</em>. Set the plan name as 'Atlas Sync'. We also need to add mappings in the mappings child table.</p> <img alt="New Data Migration Plan" src="/docs/assets/img/data-migration/new-data-migration-plan.png" class="screenshot"> <h3 id="data-migration-mapping"><a href="#data-migration-mapping" aria-hidden="true" class="header-anchor">#</a> Data Migration Mapping</h3> <p>A Data Migration Mapping is a set of rules that specify field-to-field mapping.</p> <p>Make a new <em>Data Migration Mapping</em>. Call it 'Item to Atlas Item'.</p> <p>To define a mapping, we need to put in some values that define the structure of local and remote data.</p> <ol><li>Remote Objectname: A name that identifies the remote object e.g Atlas Item</li> <li>Remote primary key: This is the name of the primary key for Atlas Item e.g id</li> <li>Local DocType: The DocType which will be used for syncing e.g Item</li> <li>Mapping Type: A Mapping can be of type 'Push' or 'Pull', depending on whether the data is to be mapped remotely or locally. It can also be 'Sync', which will perform both push and pull operations in a single cycle.</li> <li>Page Length: This defines the batch size of the sync.</li></ol> <img alt="New Data Migration Mapping" src="/docs/assets/img/data-migration/new-data-migration-mapping.png" class="screenshot"> <h4 id="specifying-field-mappings"><a href="#specifying-field-mappings" aria-hidden="true" class="header-anchor">#</a> Specifying field mappings:</h4> <p>The most basic form of a field mapping would be to specify fieldnames of the remote and local object. However, if the mapping is one-way (push or pull), the source field name can also take literal values in quotes (for e.g <code>&quot;GadgetTech&quot;</code>) and eval statements (for e.g <code>&quot;eval:frappe.db.get_value('Company', 'Gadget Tech', 'default_currency')&quot;</code>). For example, in the case of a push mapping, the local fieldname can be set to a string in quotes or an <code>eval</code> expression, instead of a field name from the local doctype. (This is not possible with a sync mapping, where both local and remote fieldnames serve as a target destination at a some point, and thus cannot be a literal value).</p> <p>Let's add the field mappings and save:</p> <img alt="Add fields in Data Migration Mapping" src="/docs/assets/img/data-migration/new-data-migration-mapping-fields.png" class="screenshot"> <p>We can now add the 'Item to Atlas Item' mapping to our Data Migration Plan and save it.</p> <img alt="Save Atlas Sync Plan" src="/docs/assets/img/data-migration/atlas-sync-plan.png" class="screenshot"> <h4 id="additional-layer-of-control-with-pre-and-post-process"><a href="#additional-layer-of-control-with-pre-and-post-process" aria-hidden="true" class="header-anchor">#</a> Additional layer of control with pre and post process:</h4> <p>Migrating data frequently involves more steps in addition to one-to-one mapping. For a Data Migration Mapping that is added to a Plan, a mapping module is generated in the module specified in that plan.</p> <p>In our case, an <code>item_to_atlas_item</code> module is created under the <code>data_migration_mapping</code> directory in <code>Integrations</code> (module for the 'Atlas Sync' plan).</p> <img alt="Mapping __init__.py" src="/docs/assets/img/data-migration/mapping-init-py.png" class="screenshot"> <p>You can implement the <code>pre_process</code> (receives the source doc) and <code>post_process</code> (receives both source and target docs, as well as any additional arguments) methods, to extend the mapping process. Here's what some operations could look like:</p> <img alt="Pre and Post Process" src="/docs/assets/img/data-migration/mapping-pre-and-post-process.png" class="screenshot"> <h3 id="data-migration-connector"><a href="#data-migration-connector" aria-hidden="true" class="header-anchor">#</a> Data Migration Connector</h3> <p>Now, to connect to the remote source, we need to create a <em>Data Migration Connector</em>.</p> <img alt="New Data Migration Connector" src="/docs/assets/img/data-migration/new-connector.png" class="screenshot"> <p>We only have two connector types right now, let's add another Connector Type in the Data Migration Connector DocType.</p> <img alt="Add Connector Type in Data Migration Connector" src="/docs/assets/img/data-migration/add-connector-type.png" class="screenshot"> <p>Now, let's create a new Data Migration Connector.</p> <img alt="Atlas Connector" src="/docs/assets/img/data-migration/atlas-connector.png" class="screenshot"> <p>As you can see we chose the Connector Type as Atlas. We also added the hostname, username and password for our Atlas instance so that we can authenticate.</p> <p>Now, we need to write the code for our connector so that we can actually push data.</p> <p>Create a new file called <code>atlas_connection.py</code> in <code>frappe/data_migration/doctype/data_migration_connector/connectors/</code> directory. Other connectors also live here.</p> <p>We just have to implement the <code>insert</code>, <code>update</code> and <code>delete</code> methods for our atlas connector. We also need to write the code to connect to our Atlas instance in the <code>__init__</code> method. Just see <code>frappe_connection.py</code> for reference.</p> <img alt="Atlas Connection file" src="/docs/assets/img/data-migration/atlas-connection-py.png" class="screenshot"> <p>After creating the Atlas Connector, we also need to import it into <code>data_migration_connector.py</code></p> <img alt="Edit Connector file" src="/docs/assets/img/data-migration/edit-connector-py.png" class="screenshot"> <h3 id="data-migration-run"><a href="#data-migration-run" aria-hidden="true" class="header-anchor">#</a> Data Migration Run</h3> <p>Now that we have our connector, the last thing to do is to create a new <em>Data Migration Run</em>.</p> <p>A Data Migration Run takes a Data Migration Plan and Data Migration Connector and execute the plan according to our configuration. It takes care of queueing, batching, delta updates and more.</p> <img alt="Data Migration Run" src="/docs/assets/img/data-migration/data-migration-run.png" class="screenshot"> <p>Just click Run. It will now push our Items to the remote Atlas instance and you can see the progress which updates in realtime.</p> <p>After a run is executed successfully, you cannot run it again. You will have to create another run and execute it.</p> <p>Data Migration Run will try to be as efficient as possible, so the next time you execute it, it will only push those items which were changed or failed in the last run.</p> <blockquote><p>Note: Data Migration Tool is still in beta. If you find any issues please report them <a href="https://github.com/frappe/erpnext/issues" target="_blank" rel="noopener noreferrer">here<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote></div> <div class="page-edit"><div class="edit-link"><a href="https://gitlab.com/dooks/dooks/edit/master/framework/data/using-data-migration-tool.md" target="_blank" rel="noopener noreferrer">Edit this page on Gitlab</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <!----></div> <!----> </div> <!----></div></div>
    <script src="/assets/js/app.bd423434.js" defer></script><script src="/assets/js/538.02147a4b.js" defer></script>
  </body>
</html>