【问题标题】:Django oracle database connectionDjango oracle 数据库连接
【发布时间】:2020-05-15 12:47:27
【问题描述】:

我在 django 项目中连接到 oracle db 时遇到问题, Oracle 连接详情: '''

XXXX=
  (DESCRIPTION =
  (LOAD_BALANCE = YES)
  (FAILOVER = YES)
  (ADDRESS_LIST =
  (ADDRESS = (COMMUNITY = XXX.xxxx)
  (PROTOCOL = TCP)
  (Host = xxx-xx.xxx.com)(Port = 1521)))
  (CONNECT_DATA =
  (service_name = xxxx.xxxxx)))

'''

我想在下面的 django 数据库连接代码中加入 oracle 的详细信息,

'''

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.oracle',
            'NAME': 'xe',
            'USER': 'a_user',
            'PASSWORD': 'a_password',
            'HOST': 'dbprod01ned.mycompany.com',
            'PORT': '1540',
        }
    }

'''

【问题讨论】:

  • 这不是文档here 中描述的吗?你有没有试过,但有些东西不起作用?

标签: django database oracle database-connection


【解决方案1】:

欢迎来到 StackOverflow!

来自文档。如果 tnsnames.ora 没有被使用。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': '(DESCRIPTION=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS_LIST=(ADDRESS=(COMMUNITY=XXX.xxxx)(PROTOCOL=TCP)(Host=xxx-xx.xxx.com)(Port=1521)))(CONNECT_DATA=(service_name=xxxx.xxxxx)))',
        'USER': 'a_user',
        'PASSWORD': 'a_password',
        'HOST': '',
        'PORT': '',
    }
}

或者您已确保您的 oracle 客户端已配置 tnsnames

tnsnames.ora

MY_AWESOME_TNS_ALIAS=(DESCRIPTION=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS_LIST=(ADDRESS=(COMMUNITY=XXX.xxxx)(PROTOCOL=TCP)(Host=xxx-xx.xxx.com)(Port=1521)))(CONNECT_DATA=(service_name=xxxx.xxxxx)))

现在 django 可以通过别名来配置。您从 django 应用程序中隐藏连接详细信息。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'MY_AWESOME_TNS_ALIAS',
        'USER': 'a_user',
        'PASSWORD': 'a_password',
        'HOST': '',
        'PORT': '',
    }
} 

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-03
    • 2014-03-18
    • 2019-12-30
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多