簡體   English   中英

帶有 DB2 的 Django 3.2 項目(IBM_DB 驅動程序)

[英]Django 3.2 Project with DB2 (IBM_DB driver)

目前,我正在使用 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

正在創建表,包括:AUTH_GROUP、AUTH_GROUP_PERMISSIONS、AUTH_PERMISSION、DJANGO_MIGRATIONS。

僅在 Django_migration 中添加了一條記錄。 我想知道我如何確認它是否好用。

db2level 輸出 ``` DB21085I 此實例或安裝(實例名稱,如果適用:“db2inst1”)使用“64”位和級別標識符“0609010E”的 DB2 代碼版本“SQL10058”。 信息標記是“DB2 v10.5.0.8”、“s160901”、“IP23998”和 Fix Pack“8”。 產品安裝在“/opt/IBM/db2/V10.5”。

Pip 凍結結果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

提前致謝。

您在問題中報告的症狀(SQL0401N when migrate is running 0001_initial.py)是由在某些遷移中使用 BOOLEAN 數據類型引起的。

在 Db2-LUW 版本 10.5 中,BOOLEAN 並未針對應用程序完全實現,它僅在復合 SQL 中可用,但尚未在應用程序中可用。

請注意,IBM 於 2020 年 4 月 30 日終止了對 Db2-LUW 版本 10.5 的支持。 除非您購買了擴展支持,否則您應該已經升級了。

您可以通過使用更新版本的 Db2-LUW(例如 v11.1 或 v11.5)來避免此問題,這兩個版本都在應用程序中正確支持 BOOLEAN。

其他變通方法也是可能的(例如調整遷移,或改變 BooleanField 的建模方式等),因此您可以在 github 上與開發人員 og ibm_db_django 一起開工單並詢問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM