簡體   English   中英

IBM Cloud db2 django 遷移 python manage.py migrate

[英]IBM Cloud db2 django migrations python manage.py migrate

在 ibm 雲上創建了我的第一個 ibm db2 數據庫,並將其與 django 連接。 使用以下設置:

 'default':{
        'ENGINE'     : 'ibm_db_django',
         'NAME'       : 'BLUDB',
         'USER'       : 'xxxxxxxxxxxxxxxx',
         'PASSWORD'   : 'xxxxxxxxxxxxxxxx',
         'HOST'       : 'dashdb-xxxxxxx-sbox-xxxxxxxxxx.services.eu-gb.bluemix.net',
         'PORT'       : '50000',
         'PCONNECT'   :  True,
    }

連接工作得很好,因為我可以為我添加的自定義 django 應用程序運行遷移。 即使是 session 和內容類型。

運行身份驗證和管理員遷移時出現問題。 我收到以下錯誤消息:

Exception('SQLNumResultCols failed: [IBM][CLI Driver][DB2/LINUXX8664] SQL0551N  The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation.  Authorization ID: "XXXXXXXX".  Operation: "SELECT". Object: "SYSIBMADM.ADMINTABINFO".  SQLSTATE=42501 SQLCODE=-551'

我了解我沒有權限對 SYSIBMADM.ADMINTABINFO 執行 select 操作。

我的問題是如何給自己(管理員帳戶)權限,以便我的 python manage.py migrate 不會引發錯誤。

或者我在 django 應用程序本身中做錯了什么。 (初始遷移)

由於您使用的是 LITE 計划(免費),因此您目前無法訪問 IBM Db2-on-cloud 上的SYSIBMADM.ADMINTABINFO 作為多租戶解決方案,使用 LITE 計划時還有其他限制。 雖然您可能會解決一個限制,但您會很快找到另一個限制。

您的選擇包括使用本地(非 docker 或 dockerized)Db2 社區版進行開發,然后再使用為您提供所需訪問權限的 Db2-on-cloud 的 $$paid$$ 版本。

但無論如何,使用 Db2 社區版進行開發更容易,因為您可以獲得所需的所有控制權。

另一種解決方法是,由於 ibm_db_django 是開源的,您也可以修改該代碼以不使用受限對象,以防 django 的較新版本尚未完成。 例如,ibm_db_django 引用sysibmam.admintabinfo的原因是確定在運行ALTER TABLE語句后是否需要重組,但您可以(僅出於開發目的)更改該檢查。 但如前所述,您可能會遇到 LITE 計划的其他限制。

簡而言之:使用免費的社區版或付費獲得所需的訪問權限。

暫無
暫無

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

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