Khi tôi thử kiểm tra bất kỳ ứng dụng nào bằng lệnh (tôi nhận thấy nó khi tôi cố gắng triển khai myproject bằng vải, sử dụng lệnh này):lỗi ứng dụng thử django - Đã xảy ra lỗi khi tạo cơ sở dữ liệu thử nghiệm: được phép từ chối tạo cơ sở dữ liệu
python manage.py test appname
tôi nhận được lỗi này:
Creating test database for alias 'default'...
Got an error creating the test database: permission denied to create database
Type 'yes' if you would like to try deleting the test database 'test_finance', or 'no' to cancel
syncdb
lệnh dường như làm việc. Cài đặt cơ sở dữ liệu của tôi trong settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'finance', # Or path to database file if using sqlite3.
'USER': 'django', # Not used with sqlite3.
'PASSWORD': 'mydb123', # Not used with sqlite3.
'HOST': '127.0.0.1', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Xin lỗi tôi không thể kiểm tra nó trước đó. Cảm ơn nó đã làm việc. – Andrius
Mặc dù OP sử dụng postgresql, nếu bạn đang sử dụng mysql, bạn sẽ có lỗi tương tự. Bạn có thể sửa chữa nó cho mysql với: => GRANT ALL ON \ *. \ * ĐẾN django @ localhost; Ban đầu tôi đã cố gắng chỉ GRANT CREATE ... nhưng sau đó không thể SELECT hoặc DROP cơ sở dữ liệu được tạo ra. Điều này chủ yếu làm cho người dùng của bạn trở thành siêu người dùng, vì vậy hãy cẩn thận. – mightypile
Tôi đã thử nghiệm một chút và tìm thấy các đặc quyền tối thiểu toàn cầu là - Dữ liệu: SELECT, INSERT, UPDATE, DELETE, Cấu trúc: TẠO, ALTER, INDEX, DROP, Admin: TÀI LIỆU THAM KHẢO. Không phải là siêu người dùng, nhưng vẫn khá mạnh mẽ, vì vậy hãy thận trọng khi sử dụng. – Scott