2015-05-25 25 views
6

Tôi bắt đầu một dự án Django 1.8 mới và nhận ra rằng tôi đã bỏ sót điều gì đó (tôi đã thực hiện di chuyển ban đầu). Tôi đã xóa cơ sở dữ liệu (postgreSQL) và xóa migration thư mục từ tất cả các ứng dụng của tôi để bắt đầu từ đầu.Django: Tôi nhận được lỗi [quan hệ "auth_group" không tồn tại] sau khi syncdb

Bây giờ, khi tôi syncdb 'Tôi nhận được lỗi này:

django.db.utils.ProgrammingError: relation "auth_group" does not exist

và khi tôi makemigrations tôi có được điều này:

No changes detected

Tôi đang làm gì sai?

Trả lời

10

Có lẽ bạn nên cố gắng tạo các mô-đun migrations (thư mục có tên migrations với tệp trống có tên __init__.py bên trong mỗi thư mục) cho ứng dụng của bạn. Và sau đó chạy lại manage.py makemigrations.

+2

cảm ơn! nó đã làm việc! Tôi chưa bao giờ gặp vấn đề này khi sử dụng South trong các phiên bản trước của Django. Nam tạo lại các thư mục di chuyển. – xpanta

+0

Làm việc cho tôi. Nhưng đó có phải là một lỗi, hay đó là cách di chuyển sắp tới được cho là sẽ hoạt động? – Rexford

+0

Tôi nghĩ rằng đó là bởi vì một thư mục không phải là một gói python trừ khi nó có một tập tin __init__.py, do đó, nó bị lỗi trong quá trình đồng bộ của nó. Nếu bạn nhìn vào tất cả các thư mục của dự án, bạn sẽ thấy các tệp init trống trong mỗi thư mục. –

-1

là django.contrib.auth trong INSTALLED_APPS?

+0

có, cũng 'django.contrib.admin' cũng có trong đó (Tôi không biết điều đó có nghĩa là gì). – xpanta

+0

@fiacre nếu bạn có câu hỏi/đề xuất và không trả lời câu hỏi, xin vui lòng đề cập đến nó trong phần bình luận của câu hỏi (Theo hướng dẫn của SO) [Xin lỗi vì đã trễ một chút] –

0

Lỗi trên xảy ra khi bạn có django.contrib.admin trong số các ứng dụng đã cài đặt. Chạy các lệnh này theo thứ tự tương ứng.

** 

./manage.py makemigrations 
./manage.py migrate auth 
./manage.py migrate** 

Điều đó làm việc cho tôi một cách hoàn hảo.

+0

Đã không làm việc cho tôi. Thêm các mô-đun di chuyển như được đề xuất trong câu trả lời khác đã làm. – musicformellons

0

Làm ./manage.py migrate auth trước hết không hoạt động đối với tôi và mọi lệnh ./manage.py đều đã ném lỗi này. Vấn đề của tôi là tôi đang làm việc với người quản lý Group trong phạm vi mô-đun.

Nếu bạn có mã như thế này trong phạm vi mô-đun:

customers_group = Group.objects.get(name='customers') 

Move nó bên trong một hàm được gọi trong thời gian chạy để thay thế.

def xyz(): 
    ... 
    customers_group = Group.objects.get(name='customers') 
3

Sự cố xảy ra trên no changes detected. Vui lòng thực thi các lệnh này bằng tên ứng dụng của bạn. Tôi đoán bạn không thêm nó (giống như những sai lầm tôi đã làm):

  1. python manage.py makemigrations myappname
  2. python manage.py migrate myappname
0

Nó có thể là:

  • một trong những pip phụ thuộc từ requirements.txt đang sử dụng South

    có lỗi này khi chạy thử nghiệm mà di chuyển trong Django 1.8. Tìm thấy lib với vấn đề bằng cách chạy thử nghiệm ở chế độ tiết. Cân nhắc nâng cấp thư viện lên phiên bản mới hơn.

manage.py test -v 3

  • một trong những thư mục/di cư có thể vẫn có tuổi di cư Nam tập tin. Có thể vì người khác vẫn đang thêm di chuyển khi bạn đang cố gắng nâng cấp Django. Sử dụng các thông tin sau để đảm bảo rằng các tệp di chuyển dự kiến ​​có trong mỗi ứng dụng.

manage.py showmigrations

Các vấn đề liên quan