{"id":10089,"date":"2023-05-10T09:49:33","date_gmt":"2023-05-10T08:49:33","guid":{"rendered":"https:\/\/blog.capdata.fr\/?p=10089"},"modified":"2023-05-10T09:49:33","modified_gmt":"2023-05-10T08:49:33","slug":"cybertec-migrator-une-alternative-a-ora2pg","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/","title":{"rendered":"Cybertec Migrator : une alternative \u00e0 ora2pg ?"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089&#038;title=Cybertec%20Migrator%20%3A%20une%20alternative%20%C3%A0%20ora2pg%20%3F\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Cybertec%20Migrator%20%3A%20une%20alternative%20%C3%A0%20ora2pg%20%3F&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Connue pour de nombreux produits d\u00e9velopp\u00e9s pour PostgreSQL, <a href=\"https:\/\/www.cybertec-postgresql.com\/en\/\">Cybertec<\/a> a r\u00e9cemment mis \u00e0 jour son outil de migration de base de donn\u00e9es du moteur Oracle vers le moteur PostgreSQL.<\/p>\n<p>Dans cet article, je vais vous expliquer la mise en place de l&#8217;outil, son installation, et vous montrer pas \u00e0 pas comment migrer une base de donn\u00e9es depuis Oracle vers PostgreSQL.<\/p>\n<p>Pour l&#8217;exemple que je m&#8217;appr\u00eate \u00e0 vous montrer, je suis partie d&#8217;une machine Rocky Linux 8.7 (Green Obsidian) sur laquelle j&#8217;ai install\u00e9 une version 19c d&#8217;Oracle en multitenant et une version 13 de PostgreSQL.<\/p>\n<p>Sur l&#8217;instance Oracle, j&#8217;ai utilis\u00e9 une base de donn\u00e9es <a href=\"https:\/\/www.oracletutorial.com\/getting-started\/oracle-sample-database\/\">sample<\/a> fournie par Oracle pour avoir de la mati\u00e8re \u00e0 migrer :<\/p>\n<h2>1\u00e8re \u00e9tape : T\u00e9l\u00e9charger la version d\u00e9sir\u00e9e de Migrator.<\/h2>\n<p>Cybertec nous met \u00e0 disposition trois types de licences pour son nouvel outil :<\/p>\n<ul>\n<li>Une licence standard, qui est une licence gratuite et permet \u00e0 tout le monde de t\u00e9l\u00e9charger l&#8217;outil pour le tester. Cette licence n&#8217;est \u00e0 utiliser que si vous pouvez vous permettre d&#8217;avoir des temps de maintenance et donc d&#8217;indisponibilit\u00e9 de votre base.<\/li>\n<li>Une licence professionnelle, qui garantit des performances de migrations plus hautes, r\u00e9duisant le temps d&#8217;indisponibilit\u00e9 en augmentant la rapidit\u00e9 d&#8217;ex\u00e9cution de la migration<\/li>\n<li>Une licence Enterprise, qui garantit une tr\u00e8s nette diminution du temps d&#8217;indisponibilit\u00e9, passant de quelques heures \u00e0 quelques minutes pour les bases les plus cons\u00e9quentes.<\/li>\n<\/ul>\n<p>Ce test est r\u00e9alis\u00e9 avec la version standard de l&#8217;application, celle que l&#8217;on peut obtenir gratuitement. Pour l&#8217;obtenir, il suffit de vous rendre sur le <a href=\"https:\/\/www.cybertec-postgresql.com\/en\/products\/cybertec-migrator\/\">site<\/a> de Cybertec, et de cliquer sur &#8220;Download&#8221; en dessous de la case de la Standard Edition.<\/p>\n<p>La version actuelle du Migrator est la version 3.16.2, la mise \u00e0 jour est intervenue pendant que je faisais mes tests, j&#8217;ai donc d\u00fb mettre \u00e0 jour le produit pour pouvoir l&#8217;utiliser correctement.<\/p>\n<p>Pour pouvoir t\u00e9l\u00e9charger l&#8217;outil, il vous faut vous inscrire en fournissant une adresse email sur laquelle le lien de t\u00e9l\u00e9chargement vous sera envoy\u00e9. Vous n&#8217;avez plus qu&#8217;\u00e0 transf\u00e9rer l&#8217;archive ainsi t\u00e9l\u00e9charg\u00e9e sur votre serveur d&#8217;installation.<\/p>\n<h2>2\u00e8me \u00e9tape : Les d\u00e9pendances<\/h2>\n<p>Pour pouvoir fonctionner, Migrator n\u00e9cessite entre autre Git et Docker. L&#8217;application fonctionne sur son propre serveur, d&#8217;o\u00f9 l&#8217;utilisation de Docker. Cela permet entre autre de pouvoir installer facilement celle-ci car il ne s&#8217;agit que de d\u00e9ployer un container sur votre installation et le tour est jou\u00e9.<\/p>\n<p>-&gt; Installer Docker<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">sudo dnf check-update\r\nsudo dnf config-manager --add-repo https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\r\nsudo dnf install docker-ce docker-ce-cli containerd.io\r\n...\r\nInstalled:\r\ncontainer-selinux-2:2.189.0-1.module+el8.7.0+1154+147ffa21.noarch containerd.io-1.6.20-3.1.el8.x86_64 docker-buildx-plugin-0.10.4-1.el8.x86_64 docker-ce-3:23.0.4-1.el8.x86_64\r\ndocker-ce-cli-1:23.0.4-1.el8.x86_64 docker-ce-rootless-extras-23.0.4-1.el8.x86_64 docker-compose-plugin-2.17.2-1.el8.x86_64 fuse-common-3.3.0-16.el8.x86_64\r\nfuse-overlayfs-1.9-1.module+el8.7.0+1154+147ffa21.x86_64 fuse3-3.3.0-16.el8.x86_64 fuse3-libs-3.3.0-16.el8.x86_64 iptables-1.8.4-23.el8_7.1.x86_64\r\niptables-libs-1.8.4-23.el8_7.1.x86_64 libcgroup-0.41-19.el8.x86_64 libnetfilter_conntrack-1.0.6-5.el8.x86_64 libnfnetlink-1.0.1-13.el8.x86_64\r\nlibnftnl-1.1.5-5.el8.x86_64 libpcap-14:1.9.1-5.el8.x86_64 libslirp-4.4.0-1.module+el8.7.0+1154+147ffa21.x86_64 slirp4netns-1.2.0-2.module+el8.7.0+1154+147ffa21.x86_64<\/pre>\n<p>Complete!<\/p>\n<p>-&gt; Installer Git :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">sudo dnf install git\r\n...\r\nInstalled:\r\nemacs-filesystem-1:26.1-7.el8.noarch         git-2.31.1-3.el8_7.x86_64                                       git-core-2.31.1-3.el8_7.x86_64                              git-core-doc-2.31.1-3.el8_7.noarch\r\nperl-Carp-1.42-396.el8.noarch                perl-Data-Dumper-2.167-399.el8.x86_64                           perl-Digest-1.17-395.el8.noarch                             perl-Digest-MD5-2.55-396.el8.x86_64\r\nperl-Encode-4:2.97-3.el8.x86_64              perl-Errno-1.28-421.el8.x86_64                                  perl-Error-1:0.17025-2.el8.noarch                           perl-Exporter-5.72-396.el8.noarch\r\nperl-File-Path-2.15-2.el8.noarch             perl-File-Temp-0.230.600-1.el8.noarch                           perl-Getopt-Long-1:2.50-4.el8.noarch                        perl-Git-2.31.1-3.el8_7.noarch\r\nperl-HTTP-Tiny-0.074-1.el8.noarch            perl-IO-1.38-421.el8.x86_64                                     perl-IO-Socket-IP-0.39-5.el8.noarch                         perl-IO-Socket-SSL-2.066-4.module+el8.6.0+957+15d660ad.noarch\r\nperl-MIME-Base64-3.15-396.el8.x86_64         perl-Mozilla-CA-20160104-7.module+el8.6.0+965+850557f9.noarch   perl-Net-SSLeay-1.88-2.module+el8.6.0+957+15d660ad.x86_64   perl-PathTools-3.74-1.el8.x86_64\r\nperl-Pod-Escapes-1:1.07-395.el8.noarch       perl-Pod-Perldoc-3.28-396.el8.noarch                            perl-Pod-Simple-1:3.35-395.el8.noarch                       perl-Pod-Usage-4:1.69-395.el8.noarch\r\nperl-Scalar-List-Utils-3:1.49-2.el8.x86_64   perl-Socket-4:2.027-3.el8.x86_64                                perl-Storable-1:3.11-3.el8.x86_64                           perl-Term-ANSIColor-4.06-396.el8.noarch\r\nperl-Term-Cap-1.17-395.el8.noarch            perl-TermReadKey-2.37-7.el8.x86_64                              perl-Text-ParseWords-3.30-395.el8.noarch                    perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch\r\nperl-Time-Local-1:1.280-1.el8.noarch         perl-URI-1.73-3.el8.noarch                                      perl-Unicode-Normalize-1.25-396.el8.x86_64                  perl-constant-1.33-396.el8.noarch\r\nperl-interpreter-4:5.26.3-421.el8.x86_64     perl-libnet-3.11-3.el8.noarch                                   perl-libs-4:5.26.3-421.el8.x86_64                           perl-macros-4:5.26.3-421.el8.x86_64\r\nperl-parent-1:0.237-1.el8.noarch             perl-podlators-4.11-1.el8.noarch                                perl-threads-1:2.21-2.el8.x86_64                            perl-threads-shared-1.58-2.el8.x86_64<\/pre>\n<p>Complete!<\/p>\n<h2>Etape 3 : Installer Migrator<\/h2>\n<p>Une fois l&#8217;archive t\u00e9l\u00e9charg\u00e9e et upload\u00e9e sur votre serveur, la premi\u00e8re \u00e9tape c&#8217;est de d\u00e9compresser l&#8217;archive. Il est conseill\u00e9 de le faire avec l&#8217;utilisateur root pour avoir les droits suffisant \u00e0 faire les installations n\u00e9cessaires.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02]# tar xf cybertec_migrator-v3.16.0-standard.tar.gz\r\n[root@oracle-02]# cd cybertec_migrator<\/pre>\n<p>Une fois notre archive d\u00e9compress\u00e9e, on cr\u00e9\u00e9 la configuration de base pour notre Migrator.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02 cybertec_migrator]# .\/migrator configure\r\n[OK] Generated environment file\r\n[INFO] Run '.\/migrator install --archive &lt; archive_file &gt; ' to complete setup<\/pre>\n<p>Avant de passer \u00e0 la suite, on s&#8217;assure de bien d\u00e9marrer notre Docker :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02 cybertec_migrator]# systemctl start docker\r\n[root@oracle-02 cybertec_migrator]# systemctl status docker\r\n\u25cf docker.service - Docker Application Container Engine\r\nLoaded: loaded (\/usr\/lib\/systemd\/system\/docker.service; disabled; vendor preset: disabled)\r\nActive: active (running) since Tue 2023-05-02 08:53:00 UTC; 7s ago\r\nDocs: https:\/\/docs.docker.com\r\nMain PID: 3197 (dockerd)\r\nTasks: 8\r\nMemory: 119.0M\r\nCGroup: \/system.slice\/docker.service\r\n\u2514\u25003197 \/usr\/bin\/dockerd -H fd:\/\/ --containerd=\/run\/containerd\/containerd.sock<\/pre>\n<p>On lance ensuite notre installation :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02 cybertec_migrator]# .\/migrator install --archive ..\/cybertec_migrator-v3.16.0-standard.tar.gz\r\n[INFO] Reading version information from archive file '..\/cybertec_migrator-v3.16.0-standard.tar.gz'\r\n[INFO] Upgrading to version v3.16.0-standard\r\n[INFO] Extracting archive file '..\/cybertec_migrator-v3.16.0-standard.tar.gz'\r\n[INFO] Loading container images\r\nc9182c130984: Loading layer [==================================================&gt;] 72.53MB\/72.53MB\r\n40599cfe08ec: Loading layer [==================================================&gt;] 349.7kB\/349.7kB\r\n20b85315cea4: Loading layer [==================================================&gt;] 102.9MB\/102.9MB\r\n61a5eccb8646: Loading layer [==================================================&gt;] 9.454MB\/9.454MB\r\n459b6b5a3ba3: Loading layer [==================================================&gt;] 3.584kB\/3.584kB\r\n8b2451f44e75: Loading layer [==================================================&gt;] 61.95MB\/61.95MB\r\nff1b0bd4bc3d: Loading layer [==================================================&gt;] 2.048kB\/2.048kB\r\n105a91dee35e: Loading layer [==================================================&gt;] 115.5MB\/115.5MB\r\n8399b2b8ccbe: Loading layer [==================================================&gt;] 3.173MB\/3.173MB\r\n4377e9cc2f2c: Loading layer [==================================================&gt;] 25.5MB\/25.5MB\r\n8dbaeed3eff6: Loading layer [==================================================&gt;] 2.56kB\/2.56kB\r\nLoaded image: cybertecpostgresql\/cybertec_migrator-core:v3.16.0-standard\r\n3af14c9a24c9: Loading layer [==================================================&gt;] 84MB\/84MB\r\naf29ec691175: Loading layer [==================================================&gt;] 62.5MB\/62.5MB\r\na0b795906dc1: Loading layer [==================================================&gt;] 3.584kB\/3.584kB\r\n95457f8a16fd: Loading layer [==================================================&gt;] 4.608kB\/4.608kB\r\n4d0bf5b5e17b: Loading layer [==================================================&gt;] 3.584kB\/3.584kB\r\nff4557f62768: Loading layer [==================================================&gt;] 7.168kB\/7.168kB\r\n0c1e2a4e5a14: Loading layer [==================================================&gt;] 13.14MB\/13.14MB\r\nLoaded image: cybertecpostgresql\/cybertec_migrator-web_gui:v3.16.0-standard\r\n7cd52847ad77: Loading layer [==================================================&gt;] 7.338MB\/7.338MB\r\ne2b55894f225: Loading layer [==================================================&gt;] 12.8kB\/12.8kB\r\n96139409c02a: Loading layer [==================================================&gt;] 2.048kB\/2.048kB\r\nc3ec93ee5b48: Loading layer [==================================================&gt;] 233.7MB\/233.7MB\r\n99c761a4ed63: Loading layer [==================================================&gt;] 60.42kB\/60.42kB\r\nb3357907ccb7: Loading layer [==================================================&gt;] 2.56kB\/2.56kB\r\na7504fa091bf: Loading layer [==================================================&gt;] 3.584kB\/3.584kB\r\na283b778659e: Loading layer [==================================================&gt;] 15.87kB\/15.87kB\r\nLoaded image: postgres:13-alpine\r\n[INFO] Container images loaded\r\n[INFO] Archived container images\r\n[INFO] Upgraded to v3.16.0-standard\r\n[WARN] Could not find TLS\/SSL certificate\r\n[INFO] Run '.\/migrator configure --tls self-signed-cert' to generate a self-signed TLS\/SSL certificate<\/pre>\n<p>Pour pouvoir fonctionner, les nouvelles versions de Migrator n\u00e9cessitent un certificat TLS, on en g\u00e9n\u00e8re donc un :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02 cybertec_migrator]# .\/migrator configure --tls self-signed-cert\r\n[INFO] Generating self-signed TLS\/SSL certificate\r\n[+] Running 2\/1\r\n Network cybertec_migrator_common         Created                                                                                                                                                                                     0.2s\r\n Volume &quot;cybertec_migrator_core_db-data&quot;  Created                                                                                                                                                                                     0.0s\r\nGenerating a RSA private key\r\n.................................................................................+++++\r\n............+++++\r\nwriting new private key to '\/etc\/nginx\/certs\/nginx.key'\r\n-----\r\nYou are about to be asked to enter information that will be incorporated\r\ninto your certificate request.\r\nWhat you are about to enter is what is called a Distinguished Name or a DN.\r\nThere are quite a few fields but you can leave some blank\r\nFor some fields there will be a default value,\r\nIf you enter '.', the field will be left blank.\r\n-----\r\nCountry Name (2 letter code) [AU]:FR\r\n...\r\nEmail Address []:sfaveere@capdata-osmozium.com\r\n[OK] Generated self-signed TLS\/SSL certificate\r\n[INFO] Run '.\/migrator up' to switch to new version\r\n[WARN] Switching will abort running migrations<\/pre>\n<h2>Etape 4 : D\u00e9marrage de l&#8217;application et premiers pas<\/h2>\n<p>Une fois notre installation termin\u00e9e, on peut d\u00e9marrer l&#8217;outil :<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">[root@oracle-02 cybertec_migrator]# .\/migrator up\r\n[+] Running 3\/3\r\n Container cybertec_migrator-core_db-1 Healthy 6.2s\r\n Container cybertec_migrator-core-1 Started 6.6s\r\n Container cybertec_migrator-web_gui-1 Started 7.3s\r\n[OK] Started on 'https:\/\/***.**.*.**'<\/pre>\n<p>L&#8217;URL fournie par la fin de l&#8217;installation est l&#8217;url \u00e0 laquelle vous devez acc\u00e9der pour pouvoir voir s&#8217;afficher votre outil de migration web.<\/p>\n<p><strong>Important :<\/strong> Avant de vous connecter sur l&#8217;application, il y a certains droits qu&#8217;il faut s&#8217;assurer d&#8217;avoir.<\/p>\n<p>Sur Oracle :<br \/>\nJ&#8217;ai cr\u00e9\u00e9 un compte Migrator avec des droits particuliers :<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">-- On the Oracle database\r\nCREATE USER migrator IDENTIFIED by migrator;\r\nGRANT CONNECT, SELECT_CATALOG_ROLE, SELECT ANY TABLE, FLASHBACK ANY TABLE TO migrator;<\/pre>\n<p>Sur PostgreSQL :<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">-- As PostgreSQL super user\r\nCREATE DATABASE demo;\r\nCREATE USER demo WITH PASSWORD 'demo';\r\nGRANT CREATE ON DATABASE demo TO demo;<\/pre>\n<p>Il ne nous reste plus qu&#8217;\u00e0 acc\u00e9der \u00e0 notre outil de migration, en se rendant au lien pr\u00e9cis\u00e9 \u00e0 la fin du start-up :<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_KzosVXNkHr.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10106\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_KzosVXNkHr-300x146.png\" alt=\"\" width=\"1079\" height=\"525\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_KzosVXNkHr-300x146.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_KzosVXNkHr-768x375.png 768w\" sizes=\"auto, (max-width: 1079px) 100vw, 1079px\" \/><\/a><\/p>\n<h2>Etape 5 : Pr\u00e9voir sa migration<\/h2>\n<p>Une fois que nous avons correctement acc\u00e8s \u00e0 notre page de garde de Migrator, on peut donc commencer \u00e0 pr\u00e9voir une nouvelle migration. En cliquant sur Migration dans le menu \u00e0 gauche, on acc\u00e8de \u00e0 une nouvelle fen\u00eatre :<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_jkiw4VdWaK.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10103\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_jkiw4VdWaK-300x146.png\" alt=\"\" width=\"1081\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_jkiw4VdWaK-300x146.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_jkiw4VdWaK-768x375.png 768w\" sizes=\"auto, (max-width: 1081px) 100vw, 1081px\" \/><\/a><\/p>\n<p>Sur cette nouvelle page, on peut cliquer sur Add New Migration afin d&#8217;acc\u00e9der \u00e0 la page de cr\u00e9ation d&#8217;une nouvelle migration<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_YnojWIrMdM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10107\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_YnojWIrMdM-300x146.png\" alt=\"\" width=\"1081\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_YnojWIrMdM-300x146.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_YnojWIrMdM-768x375.png 768w\" sizes=\"auto, (max-width: 1081px) 100vw, 1081px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Ce premier \u00e9cran est celui sur lequel on d\u00e9finit la connexion d&#8217;origine de la base de donn\u00e9es, donc notre connexion Oracle.<\/p>\n<p>Les deux premiers champs du formulaire permettent de donner un nom et une description \u00e0 notre migration.<\/p>\n<p>Ensuite, on donne une chaine de connexion pour notre base de donn\u00e9es source, le username qu&#8217;on a cr\u00e9\u00e9 plus t\u00f4t et le mot de passe qui lui est li\u00e9. On clique sur check, et si la connexion est ok, alors on aper\u00e7oit un message &#8220;Connection Success&#8221;. On peut donc cliquer sur &#8220;Next&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_Jl4fKVz8Cv.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10104\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_Jl4fKVz8Cv-300x146.png\" alt=\"\" width=\"1081\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_Jl4fKVz8Cv-300x146.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_Jl4fKVz8Cv-768x375.png 768w\" sizes=\"auto, (max-width: 1081px) 100vw, 1081px\" \/><\/a><\/p>\n<p>L&#8217;\u00e9cran suivant est l&#8217;\u00e9cran qui nous permet de g\u00e9rer le ou les sch\u00e9mas que l&#8217;on souhaite migrer. Dans notre cas, on s\u00e9lectionne le sch\u00e9ma OT et on clique sur &#8220;Next&#8221;.<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10101\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04-300x141.png\" alt=\"\" width=\"1119\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04-300x141.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04-1024x481.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04-768x361.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04-1536x722.png 1536w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_4qGPRukA04.png 1920w\" sizes=\"auto, (max-width: 1119px) 100vw, 1119px\" \/><\/a><\/p>\n<p>La fen\u00eatre qui s&#8217;affiche permet de voir tout ce que l&#8217;outil Migrator nous permet de migrer. On peut voir que sur cette version standard, on ne sait pas migrer les partitions. On peut cliquer sur &#8220;Finish&#8221;.<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10114\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90-300x141.png\" alt=\"\" width=\"1124\" height=\"528\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90-300x141.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90-1024x481.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90-768x361.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90-1536x722.png 1536w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_69Ikavyp90.png 1920w\" sizes=\"auto, (max-width: 1124px) 100vw, 1124px\" \/><\/a><\/p>\n<p>L&#8217;\u00e9cran suivant est l&#8217;\u00e9cran de suivi de la migration en lui-m\u00eame. Il comporte de nombreuses fonctionnalit\u00e9s qui vous permettent de choisir les objets que vous voulez migrer ou non, en les d\u00e9sactivant on peut ais\u00e9ment ne pas importer certains objets.<\/p>\n<p>En cliquant dans le menu d\u00e9roulant \u00e0 gauche, on peut d\u00e9rouler les tables et voir\u00a0 les champs dans ces tables. En cliquant dessus on peut m\u00eame aller modifier manuellement les types de ces champs pour leur migration, les contraintes, les index, les triggers&#8230;<\/p>\n<p>Une fois nos modifications effectu\u00e9es, pour qu&#8217;elles soient prises en compte on peut cliquer sur le bouton &#8220;Save&#8221; en bas \u00e0 gauche, juste en dessous de la ligne.<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10115\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7-300x141.png\" alt=\"\" width=\"1119\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7-300x141.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7-1024x481.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7-768x361.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7-1536x722.png 1536w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_rTqk14wyi7.png 1920w\" sizes=\"auto, (max-width: 1119px) 100vw, 1119px\" \/><\/a><\/p>\n<p>Ainsi, on peut par exemple modifier le type des colonnes de cl\u00e9 primaire de Numeric \u00e0 Integer pour \u00e9viter d&#8217;avoir un probl\u00e8me lors de l&#8217;import, dans la mesure o\u00f9 PostgreSQL n&#8217;accepte pas les cl\u00e9 primaires de type Numeric.<\/p>\n<p>Une fois que toutes nos modifications sont effectu\u00e9es, on peut cliquer sur le cercle en bas \u00e0 gauche pour ouvrir la console qui va nous permettre de lancer la migration.<\/p>\n<p><b>Les quatre \u00e9tapes de la migration sont les suivantes :<\/b><\/p>\n<ul>\n<li>Sch\u00e9ma : Migrator transf\u00e8re le sch\u00e9ma depuis l&#8217;ancienne base vers la nouvelle<\/li>\n<li>Data : Migrator transf\u00e8re la data depuis la source vers la destination<\/li>\n<li>Integrity : Il transf\u00e8re les contraintes, les indexes, les cl\u00e9s primaires<\/li>\n<li>Logic : Migrator transf\u00e8re les fonctions, les proc\u00e9dures, les vues et les triggers<\/li>\n<\/ul>\n<p>La petite fen\u00eatre de log peut \u00eatre \u00e9tendue vers le haut, et elle vous permet d&#8217;avoir un visuel sur ce qui se passe pendant votre migration, et si des erreurs \u00e9ventuelles sont rencontr\u00e9es. La majeure partie des erreurs de migrations sont des probl\u00e8mes de type que l&#8217;on peut modifier directement sur l&#8217;interface pour ensuite relancer le processus.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10116\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc-300x141.png\" alt=\"\" width=\"1119\" height=\"526\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc-300x141.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc-1024x481.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc-768x361.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc-1536x722.png 1536w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/chrome_pweApXNKTc.png 1920w\" sizes=\"auto, (max-width: 1119px) 100vw, 1119px\" \/><\/a><\/p>\n<p>Quand notre migration est termin\u00e9e, c&#8217;est affich\u00e9 dans notre log, et on peut alors aller voir sur l&#8217;environnement PostgreSQL le r\u00e9sultat obtenu.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">psql (13.10)\r\nType &quot;help&quot; for help.\r\npostgres=# \\c demo\r\nYou are now connected to database &quot;demo&quot; as user &quot;postgres&quot;.\r\ndemo=# select * from ot.products;\r\nproduct_id | product_name | description | standard_cost | list_price | category_id\r\n------------+---------------------------------------------+-----------------------------------------------------------------------+---------------+------------+-------------\r\n228 | Intel Xeon E5-2699 V3 (OEM\/Tray) | Speed:2.3GHz,Cores:18,TDP:145W | 2867.51 | 3410.46 | 1\r\n248 | Intel Xeon E5-2697 V3 | Speed:2.6GHz,Cores:14,TDP:145W | 2326.27 | 2774.98 | 1\r\n249 | Intel Xeon E5-2698 V3 (OEM\/Tray) | Speed:2.3GHz,Cores:16,TDP:135W | 2035.18 | 2660.72 | 1\r\n...\r\n<\/pre>\n<p>Notre sch\u00e9ma PostgreSQL qui ne contenait rien \u00e0 la base contient maintenant l&#8217;int\u00e9gralit\u00e9 des donn\u00e9es que notre sch\u00e9ma Oracle contenait.<\/p>\n<h2>Conclusion :<\/h2>\n<p>Sur un march\u00e9 o\u00f9 de plus en plus de produits open-source nous permettent de faciliter des t\u00e2ches aussi d\u00e9licates que de la migration d&#8217;un environnement de base de donn\u00e9es \u00e0 un autre, Migrator et son interface graphique nous offrent une solution user-friendly avec une interface qui permet de simplifier les choses.<br \/>\nIl faut cependant garder en t\u00eate que cet outil n&#8217;est pas gratuit en dehors de sa version standard, et que pour pouvoir profiter des am\u00e9liorations de performance pour vos migrations, il faut acheter une licence aupr\u00e8s de Cybertec.<br \/>\nL&#8217;installation du produit en elle-m\u00eame ne pose aucune difficult\u00e9, et apr\u00e8s un peu de prise en main, il s&#8217;av\u00e8re relativement facile \u00e0 utiliser.<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089&#038;title=Cybertec%20Migrator%20%3A%20une%20alternative%20%C3%A0%20ora2pg%20%3F\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Cybertec%20Migrator%20%3A%20une%20alternative%20%C3%A0%20ora2pg%20%3F&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10089\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Connue pour de nombreux produits d\u00e9velopp\u00e9s pour PostgreSQL, Cybertec a r\u00e9cemment mis \u00e0 jour son outil de migration de base de donn\u00e9es du moteur Oracle vers le moteur PostgreSQL. Dans cet article, je vais vous expliquer la mise en place&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":41,"featured_media":10130,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,266],"tags":[137,438,431],"class_list":["post-10089","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","category-postgresql","tag-migration","tag-oracle","tag-postgresql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG<\/title>\n<meta name=\"description\" content=\"migration oracle vers postgresql , cybertec\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"migration oracle vers postgresql , cybertec\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-10T08:49:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/PostgreSQL-Migration_oracle-to-pg.png\" \/>\n\t<meta property=\"og:image:width\" content=\"959\" \/>\n\t<meta property=\"og:image:height\" content=\"380\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sarah FAVEERE\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sarah FAVEERE\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\"},\"author\":{\"name\":\"Sarah FAVEERE\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/686f2452f7ec79115d31e41c230a9da2\"},\"headline\":\"Cybertec Migrator : une alternative \u00e0 ora2pg ?\",\"datePublished\":\"2023-05-10T08:49:33+00:00\",\"dateModified\":\"2023-05-10T08:49:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\"},\"wordCount\":2379,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"migration\",\"oracle\",\"PostgreSQL\"],\"articleSection\":[\"Oracle\",\"PostgreSQL\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\",\"name\":\"Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2023-05-10T08:49:33+00:00\",\"dateModified\":\"2023-05-10T08:49:33+00:00\",\"description\":\"migration oracle vers postgresql , cybertec\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cybertec Migrator : une alternative \u00e0 ora2pg ?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/686f2452f7ec79115d31e41c230a9da2\",\"name\":\"Sarah FAVEERE\",\"sameAs\":[\"http:\/\/blog.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/sfaveere\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG","description":"migration oracle vers postgresql , cybertec","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/","og_locale":"fr_FR","og_type":"article","og_title":"Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG","og_description":"migration oracle vers postgresql , cybertec","og_url":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2023-05-10T08:49:33+00:00","og_image":[{"width":959,"height":380,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/05\/PostgreSQL-Migration_oracle-to-pg.png","type":"image\/png"}],"author":"Sarah FAVEERE","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Sarah FAVEERE","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/"},"author":{"name":"Sarah FAVEERE","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/686f2452f7ec79115d31e41c230a9da2"},"headline":"Cybertec Migrator : une alternative \u00e0 ora2pg ?","datePublished":"2023-05-10T08:49:33+00:00","dateModified":"2023-05-10T08:49:33+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/"},"wordCount":2379,"commentCount":1,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["migration","oracle","PostgreSQL"],"articleSection":["Oracle","PostgreSQL"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/","url":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/","name":"Cybertec Migrator : une alternative \u00e0 ora2pg ? - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2023-05-10T08:49:33+00:00","dateModified":"2023-05-10T08:49:33+00:00","description":"migration oracle vers postgresql , cybertec","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/cybertec-migrator-une-alternative-a-ora2pg\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Cybertec Migrator : une alternative \u00e0 ora2pg ?"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/686f2452f7ec79115d31e41c230a9da2","name":"Sarah FAVEERE","sameAs":["http:\/\/blog.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/sfaveere\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=10089"}],"version-history":[{"count":28,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10089\/revisions"}],"predecessor-version":[{"id":10128,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10089\/revisions\/10128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/10130"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=10089"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=10089"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=10089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}