Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugs sortie SQLite #107

Closed
fduchatea opened this issue Dec 6, 2023 · 2 comments
Closed

Bugs sortie SQLite #107

fduchatea opened this issue Dec 6, 2023 · 2 comments
Labels

Comments

@fduchatea
Copy link
Contributor

Voici un exemple de script DDL produit par Mocodo (version 4.0.5) pour SQLite.

CREATE TABLE K (
  PRIMARY KEY(id),
  id INTEGER NOT NULL
);

CREATE TABLE K2 (
  PRIMARY KEY(id2),
  att2 INTEGER,
  id2 INTEGER NOT NULL
);

ALTER TABLE K2 ADD FOREIGN KEY(att2) REFERENCES K(id);

Deux problèmes :

  • SQLite n'aime pas les instructions PRIMARY KEY au début (avant l'attribut PK je suppose);
  • SQLite n'accepte pas les instructions ALTER TABLE pour créer des contraintes (il faut les créer à la création de la table), voir un exemple de discussion.

En temps normal je n'utilise pas SQLite, mais je voulais rapidement développer un prototype. Je vais passer à Postgres ou MariaDB.

@laowantong
Copy link
Owner

Ah, c'est ce que je faisais dans la version précédente, et après avoir testé je ne sais plus où il m'avait semblé qu'on pouvait passer à une syntaxe plus universelle. À corriger dans le gabarit alors.

@laowantong
Copy link
Owner

  • Désactiver certains déplacements du gabarit parent sql.yaml devrait être suffisant :

image

  • J'ai au passage ajouté la possibilité de mettre une clé "comment" dans la définition du dictionnaire « vide » destiné à remplacer un dictionnaire existant, cf. a866d7d. Le nouveau gabarit ne fonctionne qu'avec une mise à jour incluant cet ajout, ou sinon il faut en supprimer les trois clés "comment".
  • Toujours au passage, j'ai mis à jour la liste des mots SQL réservés dans différents dialectes, supprimé l'ajout de deux espaces à la fin des attributs pour éviter de rompre l'alignement avec les mots réservés protégés (ça n'avait pas l'air de servir à quoi que ce soit, et marchait mal), et enfin traité la protection des mots réservés après rétablissement de la sémantique par concaténation des rôles, et non avant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants