python3.5 + django2.1.5+ django-gbasedbtdb1.7.0 粗暴适配
# 官方文档
https://pypi.org/project/django-gbasedbtdb/#description
https://www.gbase.cn/community/post/199
1.7.0版本支持django2.1?
需要交叉编译只下载源码即可,单独编译pyodbc
不交叉编译pip安装即可
# django安装
pip install django-gbasedbtdb==1.7.0
pip install Django==2.1.5
# 初始化project , app
export PYTHON_HOME=./python3/bin
export PYTHONPATH=/opt/django_gbase8s/lib/python3.5/site-packages/
$PYTHON_HOME/django-admin startproject gbase8s
$PYTHON_HOME/django-admin startapp mytest
# 配置
修改settings.py
DATABASES = {
'default': {
'ENGINE': 'django_gbasedbtdb',
'NAME': 'test', # database name
'SERVER': '127.0.0.1,9088', # host,port
'USER': 'gbasedbt', # user
'PASSWORD': 'Gbase@123', # passowrd
'SERVERNAME': 'gbase01', # gbase8s instance
'CLIENT_LOCALE': 'zh_CN.utf8',
'DB_LOCALE': 'zh_CN.utf8',
'AUTOCOMMIT': True,
'OPTIONS': {
'DRIVER': '/opt/gbase8s/lib/cli/iclit09b.so',
'CPTIMEOUT': 120,
'CONN_TIMEOUT': 120,
'ISOLATION_LEVEL': 'READ_COMMITED',
'LOCK_MODE_WAIT': 0,
'VALIDATE_CONNECTION': True,
},
'CONNECTION_RETRY': {
'MAX_ATTEMPTS': 10,
},
'TEST': {
'NAME': 'test',
'CREATE_DB': False
}
}
}
ALLOWED_HOSTS = ['*']
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
在 settings.pys 文件中的 INSTALLED_APPS 中增加mytest
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mytest',
]
# model定义
在mytest/models.py中增加
class Book(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=32)
price = models.DecimalField(max_digits=5, decimal_places=2)
publish = models.CharField(max_length=32)
# 创建库,表
dbaccess - -
Database selected.
> create database test with log;
Database closed.
Database created.
Elapsed time: 1.204 sec
> exit;
Database closed.
# 设置环境变量
export PYTHONPATH=/opt/django_gbase8s/lib/python3.5/site-packages/
export GBASEDBTDIR=/opt/gbase8s
export GBASEDBTSQLHOSTS=$GBASEDBTDIR/etc/sqlhosts.odbc
export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH
# django操作
python3.5 manage.py migrate
报错信息:
CREATE INDEX auth_group_permissions_group_id_b120cbf9 ON auth_group_permissions (group_id)
Traceback (most recent call last):
File "/opt/django_gbase8s/lib/python3.5/site-packages/django/db/backends/utils.py", line 85, in _execute
return self.cursor.execute(sql, params)
File "/opt/django_gbase8s/lib/python3.5/site-packages/django_gbasedbtdb/base.py", line 458, in execute
return self.cursor.execute(sql, params)
pyodbc.Error: ('HY000', '[HY000] [GBasedbt][GBasedbt ODBC Driver][GBasedbt]Unspecified System Error = -350. (-350) (SQLExecDirectW)')
修改源码跳过创建索引 ,django_gbasedbtdb/base.py line 456

重新执行:
python3.5 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
python3.5 manage.py makemigrations mytest
python3.5 manage.py migrate mytest
# 最后
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526