2

我有一个这样的模型

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)

all_data是一个很长的 json 文本,它的大小可以非常非常长。

有时数据被截断,我得到的错误消息是

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

我需要确保不会发生截断,或者我需要一种解决方法。有办法吗?我尝试阅读这篇文章,但我不知道该怎么做。

我正在使用 mysql

4

2 回答 2

3

我猜在 MySQL 上,默认使用 TEXT 类型。它有 64K 个字符的限制。SQLAlchemy 将选择不同的类型来匹配给定的长度参数。由于 MEDIUMTEXT 有 16M 的任意限制,而 LONGTEXT(最多 4G 个字符)只需要多 1 个字节,因此您始终可以对这些列使用 LONGTEXT(或使用UnicodeText(length=2**31))。

于 2012-06-26T11:10:30.120 回答
1

我想我想通了。我可以为 unicodeText 参数指定一个长度。对不起菜鸟问题

于 2012-06-26T07:15:48.597 回答