Accueil Blog (en) Configurer et migrer les donnéesAcumatica vers MySQL

Configurer et migrer les donnéesAcumatica vers MySQL

Fernando Amadoz | 10 mars 2021

Que vous cherchiez à créer une nouvelle instance Acumatica sur MySQL, ou que vous ayez une instance Acumatica en cours d’exécution avec MSSQL que vous cherchez à faire passer à MySQL, le billet de blog suivant jettera un peu de lumière sur ce processus. L’utilisation de MySQL pour Acumatica n’est pas aussi bien documentée que celle de Microsoft SQL Server, ce qui rend cet article particulièrement précieux si la sélection de ce moteur de base de données est l’option - économique et technologiquement - la plus pratique pour vous ou votre client.

De plus, je vais vous guider tout au long du processus de création d’un nouveau serveur MySQL et vous montrerai les aspects clés et les astuces cachées pour migrer vos données.

Données - Client - Commande - Produit - Facture.

Acumatica est un ERP (Enterprise Resource Panning) indépendant de la base de données. Cela signifie qu’une instance Acumatica peut être exécutée sur Microsoft SQL Server ou sur un serveur MySQL.
Afin de garantir cela, il y a quelques éléments à considérer du point de vue du développement :

  • Aucun objet de base de données spécifique ne doit être créé, c’est-à-dire .SQL vues, procédures stockées, etc.
  • Toutes les communications avec la base de données doivent être effectuées à l’aide du langage BQL (Business Query Language) et des méthodes de cadre.
  • La création/modification de tables de base de données dans les packages de personnalisation doit être gérée en tant que données XML plutôt qu’à l’aide d’une requête de base de données directe.
  • etc...

Le pourcentage le plus élevé de clients Acumatica utilisent actuellement Microsoft SQL Server. Cet article, cependant, vise à faire la lumière sur la façon de configurer et de migrer Acumatica pour MySQL. Plus précisément, avec un AWS RDS My SQL Server.

Selon la description d’AWS, « Amazon Relational Database Service (Amazon RDS) facilite la configuration, l’exploitation et la mise à l’échelle d’une base de données relationnelle dans le cloud. Il fournit une capacité rentable et redimensionnable tout en automatisant les tâches d’administration fastidieuses telles que l’approvisionnement matériel, la configuration de la base de données, les correctifs et les sauvegardes.

RDS prend en charge - entre autres moteurs de base de données - MySQL, SQL Server et Aurora. Aurora est un service de base de données relationnelle développé par l’équipe AWS d’Amazon elle-même. Il prend en charge à la fois MySQL et PostgreSQL et il vaut certainement la peine d’être examiné car il est « ... jusqu’à cinq fois plus rapide que les bases de données MySQL standard et trois fois plus rapide que les bases de données PostgreSQL standard * « .

Cependant, bien que je sois très désireux d’en savoir plus sur Aurora et comment l’utiliser pour Acumatica, le but de cet article de blog est axé sur l’utilisation de MySQL. Peut-être que je vais suivre avec un post sur Aurora à l’avenir.

Configuration de MySQL dans RDS

RDS simplifie la configuration de MySQL en fournissant un assistant pour préparer le serveur.  Ici, dans ce qui suit sont les paramètres les plus pertinents à prendre en considération.

La version de MySQL. J’ai choisi d’utiliser 5.7.22 pour plusieurs raisons. Premièrement, c’est toujours la version MySQL la plus populaire utilisée sur le marché comme l’illustrent les données ci-dessous et c’est une version open-source gratuite de la base de données.

Configuration de MySQL 5.7

La source: EverSQL

De plus, bien que très tentante, l’utilisation de la dernière version disponible (actuellement MySQL 8.0.17) génère l’erreur suivante lorsque nous essayons d’établir une connexion pour y accéder via l’assistant de configuration D’Acumatica.

Assistant de configuration Acumatica.

Rendez le MySQL accessible au public en sélectionnant cette option dans l’Assistant. Sinon, l’Assistant configuration ne se connectera pas aussi bien que n’importe quel client db d’ailleurs.

Connexion au serveur de base de données.

Ensuite, assurez-vous que le groupe Sécurité peut accéder au port MySQL : 3306 et modifier le groupe de paramètres db par défaut.  Si vous utilisez la valeur par défaut actuelle (default.mysql5.7), l’Assistant Acumatica génère l’erreur suivante :

Assistant de configuration Acumatica.

Comme décrit dans le message d’erreur, nous devons nous assurer que la variable log_bin_trust_function_creators est définie sur true. Pour ce faire, vous pouvez dupliquer le groupe de paramètres par défaut et affecter cette propriété.

Après avoir confirmé tous les paramètres, le serveur commencera à être créé, et voilà! En quelques minutes, nous aurons un serveur MySQL réussi en cours d’exécution en un rien de temps.

Transition des données de MSSQL vers MySQL

Maintenant, jusqu’à présent, tout va bien, mais qu’en est-il des clients qui vont faire la transition des données de MSSQL vers MySQL?

Il existe de nombreuses applications de migration de données disponibles. Même AWS eux-mêmes ont un de leurs propres (aws.amazon.com/dms/). Il est donc temps d’investir quelques heures, de lire les critiques et d’identifier l’option la plus appropriée. Spoiler: J’ai déjà cette réponse, et l’option préférée est ** DRUM ROLL ** aucun de ce qui précède! Parlez d’une réponse anti-climatique.

Cette fois, nous allons nous appuyer sur les instantanés très très utiles d’Acumatica. Nous allons profiter de la définition de la structure de base de données gérée par l’assistant Acumatica:

– Un instantané Acumatica sera tiré de l’instance MSSQL (appelons-la l’instance A). Nous devons nous assurer que les données personnalisées sont également incluses dans l’instantané.

– Une nouvelle instance Acumatica compatible avec MySQL sera créée (appelons-la Instance B).

– Tous les packages de personnalisation doivent être publiés dans l’instance B car nous allons également migrer des données personnalisées et nous devons créer toutes les tables et colonnes personnalisées dans l’instance de destination.

– Connectez-vous à l’instance B et importez l’instantané créé dans la première étape.

Voici quelques images de nos résultats:

– Un bon de commande a été initialement créé dans l’instance A

Une section commandes fournisseur dans le tableau de bord.

– Les étapes ont été suivies, et les données importées dans l’instance B, et voici le résultat:

Données importées dans l’instance B.

Nous pouvons avoir un nouveau serveur MySQL avec les données migrées en quelques heures seulement.

Après cela, assurez-vous que des tests approfondis sont effectués dans un environnement bêta avant d’apporter vos modifications à la production. Cet article est à titre de référence. Il y a beaucoup de scénarios qui devraient être testés de votre côté. En outre, si vous envisagez de migrer vos données de MySQL vers PostgreSQL à l’avenir, il est important de noter que ce processus peut nécessiter une approche différente en raison des différences dans les structures de base de données et la syntaxe de requête entre les deux systèmes.

Résumé

En conclusion, Acumatica est un ERP indépendant de la base de données.  En tant que tel, si le budget est un facteur critique pour vous, ou si, sur le plan technologique, vous préférez MySQL en tant que moteur de base de données, il vaut la peine d’investir du temps afin de considérer ce scénario. Gardez à l’esprit que vous pourrez le faire, non seulement pour les nouvelles instances, mais aussi pour les instances en cours exécutant MSSQL.

 


*https://aws.amazon.com/rds/aurora/

 

Auteur du blog

Fondateur et PDG de SkyKnack, un fournisseur de solutions ERP qui aide les partenaires d’Acumatica à développer des personnalisations, des intégrations et de nouveaux produits, ainsi que des services de mise en œuvre et de formation.

Recevez des mises à jour de blog dans votre boîte de réception.