Closed paternal closed 9 years ago
Je n'ai pas regardé la base de donnée, mais je suppose que la clef qui identifie de manière unique une chanson dans la base est actuellement le titre. Pour corriger cela, il suffit de faire en sorte que cette clef soit le nom du fichier.
Non, on a un id séparé, basé sur un entier. Par contre, lors de l'import des chansons en base de donnée, on ignore les chansons ayant le même titre (pour pouvoir faire tourner l'import plusieurs fois). Mais la fonction d'import des chansons doit être modifiée et améliorée pour permettre les mises à jours dans tous les sens.
on se débarrasse de la nécessité du dépôt
On a une nécessité du dépôt car c'est git qui gère pour nous les versions des fichiers. Ainsi on peut permettre aux utilisateurs de corriger en ligne les paroles/accords des chansons, en mode wiki ; tout en gardant un historique des modifications clair.
Pour la gestion des datadirs, je pensais plus à une clef étrangère dans la table Song
vers une table Datadir
:
Datadir:
id
name (pour l'affichage en zone d'admin et la synchronisation)
url (pour les dépôts git à synchroniser avec un dépôt distant)
Plutôt que de se baser sur le titre, je propose qu'on se base sur le chemin pour l'unicité des chansons.
Concernant l'import, je vois (au moins) trois aspects pour la synchronisation de la BDD avec les fichiers .sg:
Au niveau de l'interface, comment faut-il le gérer ? Je propose un truc du style: (à corriger en fonction de la facilité d'implémentation des options/arguments)
manage.py syncsongs --insert
manage.py syncsongs --clean
manage.py syncsongs --update
manage.py syncsongs
La dernière commande correspondrait à une mise à jour complète
Plutôt que de se baser sur le titre, je propose qu'on se base sur le chemin pour l'unicité des chansons.
La pair datadir/path_in_datadir
correspond de manière unique au chemin. Donc ces deux versions sont équivalentes. L'avantage d'utiliser un datadir est que dans ce cas patacrep
génère un cache des chansons qui accélère la compilation.
Je propose un truc du style: (à corriger en fonction de la facilité d'implémentation des options/arguments)
Pas de problème pour avoir des options, même plusieurs à la fois. Les options proposées me semble pas mal. Il faudrait juste commencer par gérer plusieurs datadir depuis patanet, et ça se fera tout seul (ou presque ^^) après.
Ok,
Du coup "on" attend la gestion des datadir (ou au moins les bases techniques), pour mettre à jour importsongs
Je pourrais me remettre plus sérieusement à patanet une fois la seconde semaine de janvier, mes partiels et la sortie de patacrep v4.0 passés !
ok, pas de soucis Bon courage pour tes partiels !
(à partir de demain, je risque de ne plus trop avoir de disponibilités pour coder...)
Déjà évoqué dans #96, mais je le recopie ici pour être sûr qu'il n'est pas oublié.
Si deux chansons ont le même titre, une seule des deux apparait. C'est un comportement non souhaité, car rien n'interdit que deux chansons différentes aient le même titre (exemples).
Je n'ai pas regardé la base de donnée, mais je suppose que la clef qui identifie de manière unique une chanson dans la base est actuellement le titre. Pour corriger cela, il suffit de faire en sorte que cette clef soit le nom du fichier.
Et pour la gestion des datadirs, on peut considérer comme clef le couple (datadir, chemin). Comme ça :
Par contre, ça veut dire que si un jour on autorise autre chose qu'un datadir ou un nom de fichier comme source des chansons, cela ne fonctionne plus.