Khi Django chạy bộ thử nghiệm, nó sẽ tạo một cơ sở dữ liệu mới, trong trường hợp của bạn là test_finance
. Người dùng postgres có tên người dùng django
không có quyền tạo cơ sở dữ liệu, do đó thông báo lỗi.
Khi bạn chạy migrate
hoặc syncdb
, Django không cố gắng tạo finance
cơ sở dữ liệu, vì vậy bạn không gặp bất kỳ lỗi nào.
Bạn có thể thêm quyền đã tạo vào người dùng django bằng cách chạy lệnh sau trong trình bao postgres với tư cách là một siêu người dùng (mẹo nhỏ cho câu trả lời tràn ngăn xếp này).
=> ALTER USER django CREATEDB;
Lưu ý: Tên người dùng được sử dụng trong ALTER USER <username> CREATEDB;
lệnh cần khớp với người dùng cơ sở dữ liệu trong các tệp cài đặt Django của bạn. Trong trường hợp này, người đăng ban đầu, có người dùng là django
câu trả lời ở trên.