2012-04-10 28 views
12

Bối cảnh: -Cách chính xác để đối phó với việc di chuyển DB khi sử dụng South, Django và Git là gì?

Tôi đang sử dụng Django 1.3. Chúng tôi đang sử dụng miền Nam làm mô-đun cho quá trình di chuyển DB và Git SCM.

Sự cố: -

Cách chính xác để xử lý Thư mục di chuyển được hình thành là gì?

Vấn đề chính là tôi thực hiện các thay đổi trong lược đồ DB trong máy phát triển, khi tôi tải nó lên máy chủ sản xuất, tôi phải di chuyển lược đồ hiện có. Trong khi làm điều đó luôn luôn có một số vấn đề với các tập tin di chuyển.

Tôi có nên thêm thư mục di chuyển vào gitignore không? hoặc có cách nào tốt hơn để đi về nó?

+0

Bạn đang gặp phải vấn đề gì với tệp di chuyển? Tôi thường kiểm tra chúng vào git, và nó hoạt động tốt miễn là bạn cẩn thận để giữ chúng theo thứ tự (do đó, không làm cho những cái mới song song trên các ngành khác nhau). – Dougal

+0

Vấn đề là nếu tôi di chuyển giản đồ trên máy cục bộ và cố gắng làm tương tự trên máy sản xuất, nó sẽ hoạt động một lần. Điều này có hiệu quả không? tức là các tệp di chuyển giống nhau có hoạt động với máy chủ sản xuất không? – Akamad007

+0

Có, họ nên, giả sử bạn không thực hiện các thay đổi khác cho DB. Nếu bạn có một thông báo lỗi cụ thể hoặc một cái gì đó chúng tôi có thể cố gắng để gỡ lỗi nó, nhưng "không làm việc một lần" là khó làm việc từ. : p – Dougal

Trả lời

21

Bạn nên thêm thư mục di chuyển vào hệ thống kiểm soát phiên bản của mình và sử dụng cùng một tệp để sản xuất và phát triển. Bạn có thể gặp phải một số vấn đề trong hệ thống sản xuất của mình nếu bạn đã giới thiệu di chuyển của bạn không ngay từ đầu và bạn đã có các bảng hiện có.

Vì vậy, bạn phải giả mạo lần di chuyển đầu tiên, thường thực hiện tương tự như khi bạn tạo cơ sở dữ liệu lần đầu tiên syncdb. Vì vậy, khi cố gắng áp dụng lần di chuyển cho ứng dụng của bạn lần đầu tiên trên máy sản xuất, hãy thực hiện manage.py migrate app_name 0001 --fake. Điều này cho phép South biết rằng di chuyển đầu tiên đã được áp dụng (đã xảy ra với syncdb) và khi bạn chạy lại migrate, nó sẽ tiếp tục với các di chuyển sau.

+0

Đây chính xác là những gì tôi đang tìm kiếm. : P cảm ơn !! (Tìm thấy câu trả lời của bạn và cũng nghiên cứu nó. Họ đồng tình tuyệt vời) – Akamad007

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