目前,我正在用Python 3.8.10,Django 3.2和IBM_DB_DJANGO 1.5.0.0开发一个Web应用程序。
当我尝试从sqlite3迁移到DB2的第一步时,我键入了以下命令:
python manage.py migrate
不幸的是,我得到了如下错误
django.db.utils.ProgrammingError: Statement Execute Failed: [IBM][CLI Driver][DB2/AIX64] SQL0401N The data types of the operands for the operation "IN" are not compatible or comparable. SQLSTATE=42818\r SQLCODE=-401
正在创建表,其中包括:验证组、验证组权限、验证权限、Django迁移。
Django_migration中只添加了一条记录,我想知道如何才能确认它是否适合使用。
db2 level output“'”' DB21085 I这个示例或安装(示例名,如果适用:“db2 inst 1”)使用“64”位和级别标识符为“0609010 E”的DB2代码版本“SQL 10058”。信息标记为“DB2 v10.5.0.8”、“s160901”、“IP 23998”和修复包“8”。产品安装在“/opt/IBM/db2/V10.5”中。
管芯冻结结果asgiref==3.4.1 colorama==0.4.4 Django==3.2 ibm-db==3.1.0 ibm-db-django==1.5.0.0 pytz==2021.3 regex==2021.10.8 six==1.16.0 sqlparse==0.4.2
先谢谢你。
1条答案
按热度按时间t5zmwmid1#
您在问题中报告的症状(当迁移运行0001_initial.py时为SQL 0401 N)是由于在某些迁移中使用了BOOLEAN数据类型而导致的。
在Db2-LUW版本10.5中,BOOLEAN没有完全实现为应用程序,它只在复合SQL中可用,但还没有在应用程序中可用。
请注意,Db2-LUW版本10.5已于2020年4月30日结束IBM的支持。除非您购买了扩展支持,否则您应该已经升级。
您可以通过使用较新版本的Db2-LUW(例如v11.1或v11.5)来避免此问题,这两个版本都在应用程序中正确支持BOOLEAN。
其他的解决方法也是可行的(例如调整迁移,或者改变BooleanField的建模方式等),所以你可以在github上打开一个开发人员og ibm_db_django的标签并询问。