Erreur de type data too long Mysql

cancel
Showing results for 
Search instead for 
Did you mean: 
ethan
Member II

Erreur de type data too long Mysql

Bonjour Smiley Happy

En ajoutant du contenu à Alfresco via l'api Repository, je me suis rendu compte d'une chose. Il existe une limitation en nombre de caractère pour les propriétés de type d:text lorsqu'elles sont enregistrées dans la base de données mysql. Cette limitation est de 65 000 caractères environ.

Mon problème est que dans mes nodes documents, j'ai une propriété appelée my:text (de type d:text donc) qui doit contenir le texte de mes documents (word, pdf ou e-mail) et parfois, la taille du texte dépasse les 65 000 caractères. Je me demandais donc s'il serait possible de modifier le lien entre le type d:text d'alfresco et le type TEXT de mysql, afin de le remplacer par le type MEDIUMTEXT ou LONGTEXT qui peuvent contenir plus de données ?

Merci Smiley Happy
9 Replies
rguinot
Customer

Re: Erreur de type data too long Mysql

Si votre propriété doit contenir tout le texte du document, ce n'est plus vraiment une métadonnée n'est il pas ?
pouvez préciser les raisons et le besoin qui vous ont poussé a faire ce choix ?
ethan
Member II

Re: Erreur de type data too long Mysql

En fait on m'a demandé d'utiliser Alfresco pour afficher le contenu d'un repository pré-existant basé sur Jackrabbit et crée par une autre application. J'ai donc réutilisé le modèle de données fourni. La propriété qui stocke le texte des documents est utilisée dans cette application pour faire de la recherche en full-text.
jayjayecl
Active Member II

Re: Erreur de type data too long Mysql

Dans Alfresco, le contenu textuel des documents n'est pas stocké dans une "property" à proprement parler. En fait, c'est le stream binaire du fichier qui est stocké dans cm:content.
La recherche plein texte est effectuée par le biais d'une indexation/recherche Lucene.
http://wiki.alfresco.com/wiki/Search
ethan
Member II

Re: Erreur de type data too long Mysql

Oui, je sais bien : ( Mais mon chef de projet ne voulant pas stocker les binaires des documents dans cm:content, j'essaie de trouver une parade. Je sais que ce n'est pas une utilisation propre d'alfresco mais néanmoins, est-ce possible de faire cette modification de type dans la bdd ?
michaelh
Active Member

Re: Erreur de type data too long Mysql

Je comprends le contexte, qui me rappelle curieusement des projets de migration depuis une solution existante, mais j'ai un peu de mal avec l'approche qui consiste à répliquer une mauvaise pratique dans Alfresco sous prétexte que c'était fait comme ça avant.

Il y a du Frankenstein dans votre approche …. désolé de le dire. Attention à ce que votre créature ne se retourne pas contre vous ensuite  :wink:
ethan
Member II

Re: Erreur de type data too long Mysql

C'est typiquement ça oui… Je vais voir ce que je peux faire. Convertir le texte en stream et le placer dans la propriété cm:content par exemple.
Et si je plaçais le texte (string) dans la propriété cm:content, est ce que ça fonctionnerait pour une search full text?

Petite question en rapport avec ça et l'archi alfresco : Pourquoi avoir décidé de séparer le contenu des méta-données?

Merci Smiley Happy
michaelh
Active Member

Re: Erreur de type data too long Mysql

En quelques mots :

1 - Justement parce que stocker des contenus binaires dans une base de données (ou une pseudo base) est un non-sens. Elles ne sont pas faites pour ça.
2 - Parce que dans "système de fichier" il y a "fichier" et qu'on a jamais conçu mieux pour en stocker …

Notez qu'Alfresco n'invente rien sur ce point, c'est même très classique. C'est l'approche "tout en un même endroit" qui n'est pas optimale.
Sans compter l'implémentation Jackrabbit, mais ça c'est encore une autre histoire …

Franchement, vous feriez mieux de penser migration, ou au moins l'évaluer. Ça ne serait pas forcément un plus gros effort, bien au contraire, et vous obtiendriez une solution cohérente, pas un bricolage. Franchement votre "cahier des charges" me fait craindre le pire …  :roll:
ethan
Member II

Re: Erreur de type data too long Mysql

Si ma question vous a sembler remettre en cause l'architecture d'alfresco, j'en suis désolé, ce n'était absolument pas le cas. Je posais la question simplement pour comprendre. Ma question portait d'ailleurs plutôt sur l'utilisation d'une bdd pour les méta-données. J'aurais sans doute du la poser dans l'autre sens. J'ai déjà travaillé sur une application basée sur un repository et les méta-données étaient stockées dans le repository.
michaelh
Active Member

Re: Erreur de type data too long Mysql

Ahh non non, vous ne remettez rien en cause (et quand bien même, vous en avez parfaitement le droit)  Smiley Happy

En résumé : métadonnées en base et fichiers sur file system, juste parce que l'un et l'autre sont faits pour ça et pour ne rien réinventer (d'accord, c'est la réponse super courte).