django python manage.py test 出错, 错误提示如下:
Creating test database for alias 'postgres'...
Got an error creating the test database: permission
Django settings 设置如下:
DBNAME = 'multi_test'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'mysql': {
'ENGINE': 'django.db.backends.mysql',
'NAME': DBNAME,
'USER': 'root',
'PASSWORD': 'xxx',
'HOST': '127.0.0.1',
'PORT': 3306,
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
},
'postgres': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': DBNAME,
'USER': 'root',
'PASSWORD': 'xxx',
'HOST': '127.0.0.1',
'PORT': 5432,
},
}
python manage.py migrate 可以正常运行
解决途径:
在postgresql数据库中给root用户(root为settings中的'postgres'对应的'USER')增加createdb的权限
wenjie@digi007:~/study/dbtest/multi_dbs$ su - postgres
密码:
postgres@digi007:~$ psql
psql (9.6.2)
Type "help" for help.
postgres=# alter user root createdb;
在重新 运行test就不再报错 了。