2009-10-20 38 views
11

Tôi đã quản lý để triển khai ứng dụng của mình sang sản xuất bằng Capistrano, nhưng tôi không hiểu cách xử lý cơ sở dữ liệu của mình. Tôi đang sử dụng subversion và hành khách.Capistrano Triển khai Wipes Cơ sở dữ liệu?

Khi tôi chạy giới hạn triển khai, triển khai mới sẽ bắt đầu mọi thứ mới mẻ. Nó xóa sạch dữ liệu đã được thêm vào cơ sở dữ liệu. Rõ ràng, phải có một giải pháp, nhưng tôi rất ngạc nhiên khi không tìm thấy bất cứ điều gì trực tuyến về cách giải quyết vấn đề này. Tôi đã đọc tài liệu về Capistrano và nhiều hướng dẫn.

Điều tốt nhất tôi có thể tìm thấy là sách Công thức nấu ăn nâng cao, nói về cách đưa nội dung do người dùng tạo vào thư mục được chia sẻ, nhưng nó không chính xác về điểm.

Làm thế nào để bạn xử lý cơ sở dữ liệu của mình khi triển khai với Capistrano?

+0

Cơ sở dữ liệu của bạn như thế nào? SQLite? –

Trả lời

24

Có thể bạn đang sử dụng SQLite và bạn đang giữ cơ sở dữ liệu ở vị trí mặc định. Cơ sở dữ liệu của bạn không bị xóa, chỉ còn lại phía sau.

Bạn cần chỉnh sửa database.yml của mình và yêu cầu giữ cơ sở dữ liệu sản xuất ở một vị trí được chia sẻ "../../shared/database.yml" hoặc tương tự (bạn có thể nên sử dụng đường dẫn tuyệt đối, hoặc cho điểm thưởng MySQL).

Khi bạn triển khai qua capistrano, nó sẽ tạo bản sao ứng dụng mới của bạn trong thư mục được đánh dấu thời gian. Cơ sở dữ liệu của bạn đang bị bỏ lại phía sau trong thư mục có dấu thời gian cũ.

+0

Ah! Ok, vâng tôi sắp chuyển sang mysql, nhưng tôi đã sử dụng sqlite để phát triển và đã triển khai lần đầu tiên với sqlite. Có vẻ như đã đến lúc chuyển sang mysql. Cảm ơn. – MikeH

+0

Chuyển sang mysql và mọi thứ đều hoạt động tốt. Đây là vấn đề. – MikeH

+0

Nội dung hay! Cảm ơn bạn đã chấp nhận! – cwninja

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