2012-01-07 29 views
6

gần đây tôi đã bắt đầu một dự án Django nhỏ mà tôi đã phát triển trên máy cục bộ bằng cơ sở dữ liệu SQLite3 và máy chủ phát triển tích hợp. Bây giờ tôi đã sao chép toàn bộ dự án sang một máy chủ đang chạy Debian.Dự án Django sử dụng sai (cũ) cài đặt cơ sở dữ liệu

Mọi thứ hoạt động tốt miễn là tôi tiếp tục sử dụng cơ sở dữ liệu SQLite3. Bây giờ tôi muốn chuyển sang một cơ sở dữ liệu MySQL cục bộ, vì vậy tôi đã thay đổi tệp settings.py trong thư mục gốc của dự án của tôi, đã tạo cơ sở dữ liệu và thêm một người dùng. Tôi sau đó chạy syncdb và nó tạo ra các bảng cần thiết mà không có bất kỳ vấn đề.

Bây giờ tôi muốn sử dụng ứng dụng, nhưng tôi vẫn gặp lỗi, vì Django không thể tìm thấy bảng - không phải 'bảng chuẩn' như django_sessions cũng như bảng của riêng tôi - mặc dù chúng ở đó (tôi đã kiểm tra cơ sở dữ liệu) .

Một trong những điều mà dường như lúng túng về các trang DatabaseError tôi nhận được là dòng sau:

Exception Location: /usr/local/lib/python2.6/dist-packages/django/db/backends/sqlite3/base.py in execute, line 234 

Nó có vẻ như Django vẫn sử dụng backend SQLite3 mặc dù tôi đặt nó để sử dụng MySQL backend.

Điều khác gần như khiến tôi khó chịu là: tôi đã xóa tệp data.sqlite trong thư mục gốc của ứng dụng bằng rm. Nhưng khi tôi sử dụng ứng dụng của tôi, tệp đang được tạo lại!

Có ai có thể cho tôi biết tôi đã đi sai không?

+1

bạn có tệp settings.pyc không? –

+0

Có, và tôi đã xóa nó hai lần. Nhưng điều đó không thay đổi gì cả. – user1136324

+0

bạn có tệp local_settings.py không? –

Trả lời

3

Khi chạy trong sản xuất với mod_wsgi hoặc mod_python, mã mới không được tích hợp cho đến khi bạn tải lại/khởi động lại máy chủ web.

Nếu bạn đang sử dụng apache với mod_wsgi, bạn cũng có thể touch tệp wsgi.py chỉ khởi động lại mã python.

1

Nếu chạy trên apache chạy "sudo /etc/init.d/apache2 tải lại" mỗi lần bạn thực hiện thay đổi.

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