mysql与oracle连接数据库服务器配置_Django 数据库连接配置(Oracle、Mysql)

一、Django Oracle连接配置

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.oracle',

'NAME': 'DEMO',

'USER': 'demo1',

'PASSWORD': 'demo1',

'HOST': "10.XXX.XXX.XXX",  # Set to empty string for localhost

'PORT': '1521',             #端口

}

}

二、Django Mysql连接配置

DATABASES = {

'default': {'ENGINE': 'django.db.backends.mysql',

#数据库名字

'NAME': 'study',

'USER': 'root',

'PASSWORD': 'centos',

'HOST': '127.0.0.1',

'PORT': '3306',

'OPTIONS': {

'autocommit': True,

'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",

},

}

}

三、注意事项

1、查看django版本

import django

print(django.VERSION)

4c6c6f41eeb52e0d800774f2d813240a.png

2、关联数据库

python manage.py makemigrations

python manage.py migrate

1)python manage.py migrate 报错

ORA-02000: missing ALWAYS keyword

ORA-02000: missing ALWAYS keyword 问题是因为django默认为每个表增加序列字段,django2.0使用了 oracle12 新特性 ALWAYS keyword(而旧版本不支持自增长序列字段),因此如果你的服务器oracle不是12c版本使用django2.0就会出现这个错误,要解决这个问题只有使用低版本的djiango或服务器升级到oracle12c,再或者花精力去修改ORM框架文件!以上是我的理解,不知正确与否,待验证!

降低版本在执行

8d321fd4033e6aa84079de0255b56147.png

2)python manage.py migrate 报错

修改setting中的MIDDLEWARE为MIDDLEWARE_CLASSES

b19742d40dc4e1f4956e98acd65e53fd.png

3)python manage.py migrate报错

再次报错,原因是,cx_Oracle6.0以及以上版本删除numbersAsStrings方法,既然6.0删除了,只能降级

21be56ffaa99945d2612e3901c1c5936.png

降低版本

pip install cx-oracle==5.3

报错

e8d45c4c61d20397a88a7cbf055e4358.png

为了绕过这个错误,在网上找到了一个封装好的cx-Oracle版本

https://www.lfd.uci.edu/~gohlke/pythonlibs/  从这里面下载

只有这一个版本安装成功(我的是64位)

768a4126e180801a3f0ef08df5bae933.png

导入cx_Oracle测试

70032779c3ee4451222adeab8d6ae660.png

cx_Oracle5.2 ImportError: DLL load failed: 找不到指定的程序。

解决方法。。。。没有解决

回滚cx_Oracle位原来的7版本

在base.py文件中注销了 self.cursor.numbersAsStrings = True

21be56ffaa99945d2612e3901c1c5936.png

4)python manage.py migrate 报错

因为cx_Oracle位原来的7版本对应的是Oracle12c版本,12c增加了类似MySQL的表的主键自增,

导致插入数据id为空,插入比进去,这个ID是表的主键,因此间表的主键删除,插入数据后,在加上。

5b1c9ee22336df10d54c15bf2b2559f5.png

。。。。

再次执行,表已存在。。。直接放弃

99f8f16e2c2c19a24f4a3bed546d4fc7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值