国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Python相關(guān)包版本信息】

Django ? ? ? ? ? ? ? ? ? ? ? ?4.2.7
django-dmPython ? ? ? ? ? ? ? 3.1.7
dmPython ? ? ? ? ? ? ? ? ? ? ?2.5.5

【達夢數(shù)據(jù)庫版本】

DM Database Server 64 V8
DB Version: 0x7000c

適配過程中發(fā)現(xiàn)的問題如下:

錯誤一:django.core.exceptions.ImproperlyConfigured: 'django_dmPython' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of: 'mysql', 'oracle', 'postgresql', 'sqlite3'

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

解決方法:將django_dmPython和django_dmPython-3.1.7.dist-info復制一份,放到django下面的db/backends/目錄下,因此后面發(fā)現(xiàn)與此包相關(guān)的問題,需要修改2處。

錯誤二-1:ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/usr/local/python/lib/python3.12/site-packages/django/utils/encoding.py). Did you mean: 'force_bytes'?

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

修改django/db/backends/django_dmPython/base.py,將18行中的force_text去掉,因為在代碼中沒有被調(diào)用。

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

###你也可以在django/utils/encoding.py文件中添加此函數(shù),這樣修改后,就可以忽略錯誤二-2、錯誤二-3。

老版本django中的force_text函數(shù)的定義如下:

def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):

?? ?warnings.warn(

??????? 'force_text() is deprecated in favor of force_str().',

??????? RemovedInDjango40Warning, stacklevel=2,

??? )

??? return force_str(s, encoding, strings_only, errors)

錯誤二-2:ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/usr/local/python/lib/python3.12/site-packages/django/utils/encoding.py). Did you mean: 'force_bytes'?

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

修改django/db/backends/django_dmPython/operations.py文件,將前面的import導入的force_text去掉,同時將下面的調(diào)用修改為force_str(2處)。

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

錯誤二-3:ImportError: cannot import name 'force_text' from 'django.utils.encoding' (/usr/local/python/lib/python3.12/site-packages/django/utils/encoding.py). Did you mean: 'force_bytes'?

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

修改django/db/backends/django_dmPython/utils.py文件,將前面的import導入的force_text去掉,同時將下面的調(diào)用修改為force_str(1處)

錯誤三、ImportError: cannot import name 'Random' from 'django.db.models.expressions' (/usr/local/python/lib/python3.12/site-packages/django/db/models/expressions.py)

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

老版本django中的Random類的定義如下:

class Random(Expression):

??? output_field = fields.FloatField()

??? def __repr__(self):

??????? return "Random()"

??? def as_sql(self, compiler, connection):

??????? return connection.ops.random_function_sql(), []

修改方法:修改django/db/models/expressions.py文件,在代碼最后面,增加上述定義。(不要嘗試將其加入到django_dmPython/compiler.py,因為上面這個類又調(diào)用了Expression,比較麻煩。

錯誤四:django.core.exceptions.FullResultSet

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

解決方法:修改django/db/models/sql/where.py,將175和176行注釋掉(這樣修改肯定不對,不過目前暫未發(fā)現(xiàn)影響,后期發(fā)現(xiàn)了再改)

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

錯誤五:AttributeError: 'Query' object has no attribute 'explain_query'

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

解決方法:修改django_dmPython/compiler.py,將300-304行注釋掉(這樣修改肯定不對,不過目前暫未發(fā)現(xiàn)影響,后期發(fā)現(xiàn)了再改,不過應該影響不大,這個應該是生成explain查詢sql語句性能的動作)。

老版本/django/db/models/sql/query.py代碼中定義了explain_query變量,在Query類中的__init__函數(shù)中定義此變量,賦默認值為False;在函數(shù)explain中將其值修改為了explain了。

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

錯誤六:Invalid column name [AAAAAAAAAAAAAAAAAC]

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

這個問題是達夢驅(qū)動的問題,直接按照下面修改就行。

解決方法:修改django_dmPython/operations.py中的last_insert_id函數(shù),參考如下寫法。

def last_insert_id(self, cursor, table_name, pk_name):

??????? """

??????? Given a cursor object that has just performed an INSERT statement into

??????? a table that has an auto-incrementing ID, returns the newly created ID.

??????? This method also receives the table name and the name of the primary-key

??????? column.

??????? """

??????? # sq_name = self._get_sequence_name(table_name)

??????? # cursor.execute('SELECT "%s".currval FROM dual' % sq_name)

??????? if cursor.lastrowid is not None:

??????????? lastrowid=cursor.lastrowid

??????????? rowid_dict = {'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9,

????????????????????????????????? 'K': 10, 'L': 11,

????????????????????????????????? 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20,

????????????????????????????????? 'V': 21, 'W': 22,

????????????????????? ????????????'X': 23, 'Y': 24, 'Z': 25, 'a': 26, 'b': 27, 'c': 28, 'd': 29, 'e': 30, 'f': 31,

????????????????????????????????? 'g': 32, 'h': 33,

????????????????????????????????? 'i': 34, 'j': 35, 'k': 36, 'l': 37, 'm': 38, 'n': 39, 'o': 40, 'p': 41, 'q': 42,

????????????????????????????????? 'r': 43, 's': 44,

????????????????????????????????? 't': 45, 'u': 46, 'v': 47, 'w': 48, 'x': 49, 'y': 50, 'z': 51, '0': 52, '1': 53,

????????????????????????????????? '2': 54, '3': 55,

????????????????????????????????? '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61, '+': 62, '/': 63}

??????????? rowid_temp = 0

??????????? for i in lastrowid[-8:]:

??????? ????????rowid_temp = rowid_temp * 64 + rowid_dict[i]

??????????? lastrowid=rowid_temp

??????????? query = 'select %s from %s where rowid = %s' %(self.quote_name(pk_name), self.quote_name(table_name), lastrowid)

??????????? cursor.execute(query)

??????? else:

??????????? cursor.execute('SELECT MAX(%s) from %s' %(self.quote_name(pk_name), self.quote_name(table_name)))

???????????

??????? value = cursor.fetchone()[0]

??????? return value

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

錯誤七、TypeError: DatabaseSchemaEditor._alter_column_type_sql() takes 5 positional arguments but 7 were given

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

上圖是新老版本的_alter_column_type_sql的函數(shù)定義,發(fā)現(xiàn)多了2個參數(shù),分別是old_collation, new_collation。這2個參數(shù)在函數(shù)體內(nèi)調(diào)用如下:

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

可以很容易定位到_collate_sql函數(shù),后面2個參數(shù)壓根未使用,只是使用了collation,也就是new_collation參數(shù),這個函數(shù)的作用是字符集排序;

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython

查看django_dmPython/schema.py中的_alter_column_type_sql函數(shù),在參數(shù)中添加2個參數(shù),這2個參數(shù)暫時先不用,后面有問題再處理(可以參考django/db/backends/postgresql/schema.py或django/db/backends/mysql/schema.py中同名函數(shù)的實現(xiàn)邏輯)。

arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫,數(shù)據(jù)庫,python,python,django,達夢,dmPython,django_dmPython文章來源地址http://www.zghlxwxcb.cn/news/detail-861609.html

到了這里,關(guān)于arm架構(gòu),django4.2.7適配達夢8數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 阿里云PolarDB數(shù)據(jù)庫倚天ARM架構(gòu)詳細介紹

    阿里云PolarDB數(shù)據(jù)庫倚天ARM架構(gòu)詳細介紹

    阿里云云原生數(shù)據(jù)庫PolarDB MySQL版推出倚天ARM架構(gòu),倚天ARM架構(gòu)規(guī)格相比X86架構(gòu)規(guī)格最高降價45%,PolarDB針對自研倚天芯片,從芯片到數(shù)據(jù)庫內(nèi)核全鏈路優(yōu)化,助力企業(yè)降本增效?;诎⒗镌谱匝械囊刑旆掌鳎瑫r在數(shù)據(jù)庫引擎層、OS層、芯片層進行了全路徑優(yōu)化,最高降價

    2024年02月12日
    瀏覽(92)
  • 阿里云數(shù)據(jù)庫PolarDB MySQL版倚天ARM架構(gòu)詳解

    阿里云數(shù)據(jù)庫PolarDB MySQL版倚天ARM架構(gòu)詳解

    阿里云云原生數(shù)據(jù)庫PolarDB MySQL版推出倚天ARM架構(gòu),倚天ARM架構(gòu)規(guī)格相比X86架構(gòu)規(guī)格最高降價45%,PolarDB針對自研倚天芯片,從芯片到數(shù)據(jù)庫內(nèi)核全鏈路優(yōu)化,助力企業(yè)降本增效?;诎⒗镌谱匝械囊刑旆掌?,同時在數(shù)據(jù)庫引擎層、OS層、芯片層進行了全路徑優(yōu)化,最高降價

    2024年02月10日
    瀏覽(18)
  • 超詳細的ARM架構(gòu)適配介紹!

    超詳細的ARM架構(gòu)適配介紹!

    超詳細的ARM架構(gòu)適配介紹! - 掘金 本文主要介紹云聯(lián)壹云平臺如何適配ARM,并運行在ARM CPU架構(gòu)的機器上。 背景介紹 1、平臺服務運行架構(gòu) 云聯(lián)壹云平臺采用容器化,分布式的架構(gòu)運行在 Kubernetes(K8s)之上。下面是平臺服務運行的架構(gòu)圖: 在多個節(jié)點之上,我們會構(gòu)建Kub

    2024年02月09日
    瀏覽(19)
  • ARM CPU架構(gòu)下Mysql數(shù)據(jù)庫通過Sysbench壓力測試

    ARM CPU架構(gòu)下Mysql數(shù)據(jù)庫通過Sysbench壓力測試

    寫到最前 ? ? ? ?這段本想寫到最后的,但是哥們?yōu)榱硕帱c粉絲把這個文章設置成了粉絲可見,所以在最前面這段我想談一下我本人對當前國產(chǎn)信創(chuàng)要求以及ARM架構(gòu)服務器的看法。 ? ? ? ? 總的來說我對國產(chǎn)信創(chuàng)ARM服務器這條技術(shù)路線持絕對樂觀的態(tài)度。首先從服務器CPU算力

    2024年02月03日
    瀏覽(22)
  • 【Django】Django4.1.2使用xadmin避坑指南

    換成Django4版本使用xadmin真是需要巨大勇氣。 win10 python3.9.0 django4.1.2 解決辦法: 如果正常安裝了xadmin庫的話,six庫也會安裝,把 項目根目錄/venv/Lib/site-packages/six.py 復制到 項目根目錄/venv/Lib/site-packages/django/utils 下即可。 分析: Django已經(jīng)棄用 ugettext(), ugettext_lazy(), ugettext_noo

    2023年04月08日
    瀏覽(967)
  • <達夢>《達夢數(shù)據(jù)庫備份歸檔》

    方式 備份 DIsql 工具 用于執(zhí)行聯(lián)機的數(shù)據(jù)備份與數(shù)據(jù)還原,包括數(shù)據(jù)庫備份、歸檔備份、表空間備份與還原、表備份與還原; DMRMAN 工具 用于執(zhí)行脫機的數(shù)據(jù)備份、還原與恢復,包括脫機的數(shù)據(jù)庫備份、還原與恢復,脫機還原表空間,歸檔的備份、還原與修復; 客戶端工具

    2024年02月05日
    瀏覽(51)
  • 【KingbaseES】銀河麒麟V10 ARM64架構(gòu)_安裝人大金倉數(shù)據(jù)庫KingbaseES_V8R6(CentOS8)

    【KingbaseES】銀河麒麟V10 ARM64架構(gòu)_安裝人大金倉數(shù)據(jù)庫KingbaseES_V8R6(CentOS8)

    ?? 個人主頁——??開著拖拉機回家_Linux,Java基礎學習,大數(shù)據(jù)運維-CSDN博客 ????? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬請批評指正!???? ???????????????? ?????????????? ???????????????????????? 感謝點贊和關(guān)注 ,每天進步

    2024年02月08日
    瀏覽(96)
  • 遙遙領(lǐng)先,免費開源的django4-vue3前后端分離項目

    遙遙領(lǐng)先,免費開源的django4-vue3前后端分離項目

    本項目前端基于當下流行且常用的vue3作為主要技術(shù)棧進行開發(fā),融合了typescript和element-plus-ui,提供暗黑模式和白晝模式兩種主題以及全屏切換,開發(fā)bug少,簡單易學,項目后端采用了python的django框架作為開發(fā)模塊。 目前正在搭建到網(wǎng)絡服務器中。項目會不定期更新喜歡的朋

    2024年02月04日
    瀏覽(116)
  • 達夢數(shù)據(jù)庫 優(yōu)化

    達夢數(shù)據(jù)庫 優(yōu)化

    優(yōu)化不能僅從數(shù)據(jù)庫方面考慮,比如,在存儲達到數(shù)據(jù)庫極限、應用涉及人員設計的代碼稀巴爛的情況下,進行調(diào)優(yōu)就是杯水車薪的效果。 涉及到優(yōu)化人員: 數(shù)據(jù)庫管理員 應用程序架構(gòu)師 應用程序設計人員 系統(tǒng)管理員 存儲管理員 涉及到的優(yōu)化內(nèi)容: 應用程序:(與開發(fā)人員

    2024年04月09日
    瀏覽(21)
  • Oracle、達夢:☆獲取數(shù)據(jù)庫對象、獲取對象的DDL定義語句(達夢)

    以下方式在達夢DM數(shù)據(jù)庫中都能跑通,Oracle未測試所有的方式。 數(shù)據(jù)庫所有對象表:包括 表、視圖、物化視圖、函數(shù)、存儲過程……等 ①、ALL_OBJECTS視圖方式 OBJECT_TYPE 解釋: oracle 的ALL_OBJECTS中的OBJECT_TYPE表示: TABLE :表示表,這是用于存儲和管理數(shù)據(jù)庫中數(shù)據(jù)的主要結(jié)構(gòu)。

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包