2012-06-26 2 views
2

J'ai un modèle comme celui-citroncature de données à la colonne (UnicodeText) dans sqlalchemy

class mymodel(Base): 
    """ 
    Unprocessed DataSource model 
    """ 
    __tablename__ = 'mymodel_data' 
    mod_id = Column(Integer, primary_key=True) 
    mod_name = Column(Unicode(150)) 
    user_id = Column(Integer, ForeignKey('users.user_id')) 
    all_data = Column(UnicodeText) 

Le all_data est un texte long JSON et la taille de celui-ci peut être très très très long.

Parfois, les données est tronqué et l'erreur MSG je reçois est

Warning: Data truncated for column 'all_data' at row 1 

je dois vous assurer que la troncature ne se produit pas ou je besoin d'une solution de contournement. Y a-t-il un moyen? J'ai essayé de lire this article mais je ne pouvais pas savoir quoi faire.

J'utilise MySQL

Répondre

1

Devinez I figured it out. Je peux spécifier une longueur pour l'argument unicodeText. Je suis désolé pour la question noob

3

Je suppose que sur MySQL, le type TEXT est utilisé par défaut. Il a la limite de 64K caractères. SQLAlchemy choisira un type différent pour correspondre à l'argument de longueur donné. Comme MEDIUMTEXT a une limite arbitraire à 16M, et LONGTEXT (caractères max 4G) nécessite seulement 1 octet de plus, vous pouvez toujours utiliser le LONGTEXT pour ces colonnes (ou utiliser UnicodeText(length=2**31)).

Questions connexes