【发布时间】:2018-10-16 23:55:09
【问题描述】:
我假设这不是一个常见的场景——但是我在我的 Mac 上运行 Django 2.0.9、pyodbc 4.0.24、django-pyodbc-azure 2.0.4.1 和 ODBC 17,与在 Docker 中运行的 SQL Server 交谈, Microsoft SQL Server 2017。
由于我无法控制的原因,我正在建模一个系统,其中上传存储为 BLOB,SQL Server 用语中的 varbinary 类型。
无论我做什么,只要我声明一个 BLOB 类型并尝试加载一个夹具(没有 BLOB),我就会收到错误:
Could not load mytype.MyType(pk=3455): ('22018', '[22018] [FreeTDS][SQL Server]不允许从数据类型 varchar 到 varbinary(max) 的隐式转换。使用 CONVERT 函数运行此查询。(257) (SQLExecDirectW)')
型号如下:
class MyType(models.Model):
id = models.BigAutoField(primary_key=True)
desc = models.CharField(
max_length=4000, blank=True, null=True)
name = models.CharField(max_length=8, blank=True, null=True)
blah_id = models.BigIntegerField(blank=True, null=True)
related_thing = models.ForeignKey(
Thing,
on_delete=models.PROTECT,
blank=True,
null=True)
... etc ...
pdf = models.BinaryField(blank=True, null=True) # here is the sticking point
class Meta:
# etc
我使用夹具加载数据,除了教学大纲之外的所有内容,我总是到达那里错误:
问题安装夹具'/path/to/fixtures/0011_mydata.json':无法加载mytype.MyType(pk=3455):('22018','[22018] [FreeTDS][SQL Server]隐式转换不允许将数据类型 varchar 转换为 varbinary(max)。使用 CONVERT 函数运行此查询。(257) (SQLExecDirectW)')
我相信这个错误是一个红鲱鱼,真正的问题在于特定于 Mac 的驱动程序 Docker 中的 Sql Server
感谢任何帮助!
【问题讨论】:
标签: sql-server django docker