Mise à Jour d'un schéma SQL

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Au boulot je travaille avec Windev, Windev c'est un AGL français permettant de développer.

Jusqu'à aujourd'hui j'utilise pleinement l'écosystème de Windev. Donc quand on créée un programme on a souvent besoin d'une base de données et Windev propose son propre système à savoir HyperFileSQL.

L’avantage c'est qu'il est parfaitement intégrer à Windev, surtout dans le cadre d'une mise à jour du schéma de la base de données, en une instruction le programme vérifie la structure de la base de données par rapport au schéma en mémoire et mes à jour en conséquence.

Le problème c'est que je ne suis absolument pas satisfait de ce moteur SQL, d'abord parcequ'il y a des tas de fonction SQL non supportées, mais sa à la limite je trouve toujours comment contourner, mais surtout parce que je pense qu'il y a de sérieux problèmes au niveau des propriétés ACID étant donné qu'il arrive fréquemment d'avoir des base de données corrompue, cela arrive majoritairement lorsqu'il y a une panne de courant chez les clients, lorsqu'ils redémarre leur programme il plante lamentablement en signalant qu'un fichier est corrompu.
Pire, des fois des fichiers peuvent être corrompu sans raison du jour au lendemain.

Bref, je souhaite passer à autre chose, en l'état je pense que je vais prendre MySQL.
Si j'ai nettement plus confiance en la stabilité de MySQL je suis embêté pour la maintenabilité de mes applications, quand je fais une mise à jour il va falloir gérer à la main la migration de la structure de la BDD étant donné que Windev ne propose pas de gestion automatique de migration pour autre chose que HyperFileSQL.

Du coup, et c'est là où je veux en venir, je cherche un outil qui en entrée recevrai un schéma sql cible et les paramètres de connexion à la base de données à mettre à jour.
Vu que les ORM y arrive très bien c'est que c'est faisable, sauf que je n'ai rien trouvé sur google :(

Auriez-vous quelque chose à me conseiller ?

Merci d'avance pour votre aide.
Cordialement, La source

+0 -0
Staff

Petite question, sur quelle version de Windev travailles tu ? La dernière que j'ai touchée était la version 16. Et j'ai l'impression que les problèmes que tu rencontres avec HyperFile sont plus des problèmes de code. Il faut bien comprendre le modèle de Transaction de HyperFile pour arriver à l'exploiter correctement. Dans les bonne pratiques, tu dois très souvent ouvrir des Transaction et les fermer au bon moment, je n'ai personnellement jamais eu à remettre en cause leur gestion transactionnelle.

Tout ça pour dire que c'est une mauvaise idée (surtout si tu as beaucoup des clients) de te séparer de HyperFile pour du MySQL car tu va devoir installer un MySQL pour chaque client (alors que HyperFile se package très bien avec l'executable Windev).

Auteur du sujet

Je suis sur Windev 20.

Um… je peux croire dans certaines circonstances que cela soie dans le code, mais… quand le système signale une erreur de doublon sur la PK (que je ne renseigne pas vu que c'est auto) car en fait HyperFile à perdu le compte (aucune idée de comment il fait, mais il le fait). Ce n'est clairement pas une erreur dans le code. (aucuns ajout ne force les PK)

Par ailleurs… le moteur HyperFile n'est pas dans l’exécutable, on fait nous même l'installation tous simplement car il y a beaucoup de cas spéciaux avec plusieurs machines dans la même base de données. Bref, nous gérons sa manuellement, alors géré HyperFile ou MySQL… finalement c'est kifkif.

+0 -0

Quelques remarques.

1- Je suis plutôt de l'avis de Firm1, HFSQL est globalement fiable (pas toujours rapide, pas souvent au point sur les commandes SQL complexes, mais fiable.)

2- PCSoft préconise fortement HFSQL-CS au lieu de HFSQL. Et j'ai nettement l'impression que tu n'utilises pas HFSQL-CS.

3- Je n'ai pas du tout vérifié, mais avec un peu de chance, si tu utilises MySQL via l'accès natif, peut-être que les procédures d'installations feront les mises à jours utiles sur la BDD ?

A tester ou à vérifier auprès de PCSoft.

De toutes façons, si tu switches vers MySQL sans utiliser l'accès natif, tu vas avoir beaucoup de travail pour adapter ton application.

Édité par elegance

+1 -0
Auteur du sujet

J'utilise HFSQL CS.

Je compte utiliser MySQL via l'accès natif ;) mais j'ai vérifier, pcsoft ne propose pas de mise à jour automatique pour d'autres formats que HFSQL.

Et je maintien que HFSQL n'est pas stable, je n'invente pas les clients qui m'appelle en me disant qu'ils ont des erreurs étrange et lorsque je me connecte qu'un fichier HFSQL aie un index corrompu voir carrément le fichier irrécupérable.

+0 -0
Auteur du sujet

J'fais avec… ce n'est clairement pas un produit que je recommande mais bon, quand le patron décide…

Pour répondre à ma question, j'ai continuer les recherches, je n'ai pas encore pu tester mais deux solutions sont apparue:

  • schemasync mais le défaut est que c'est la synchronisation de deux base de données.
  • mysql-diff lui il à l'air de tout faire bien :)

Faudra voir concrètement à l'utilisation mais à mon avis je tien le bon bout.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte