Trong một thời gian dài, chúng tôi đã lưu trữ dữ liệu của chúng tôi trong kho lưu trữ của dự án. Chúng tôi chỉ tổ chức mọi thứ theo dữ liệu/sql, và mỗi bảng có các tệp create_tablename.sql và data_tablename.sql riêng của nó.Mã & theo dõi/triển khai dữ liệu
Chúng tôi hiện đã triển khai dự án thứ 2 của mình lên Scalr và chúng tôi đã nhận ra rằng có một chút lộn xộn.
Cách chúng tôi triển khai:
Chúng tôi có một "packageup" tập hợp các kịch bản mà xé ngoài dự án thành 3 tài liệu lưu trữ (dữ liệu, mã, các tập tin tĩnh) mà chúng tôi sau đó lưu trữ trong 3 xô riêng biệt trên S3. Mỗi khi một vai trò khởi động, nó sẽ tải xuống một trong các tệp (tùy thuộc vào vai trò: dữ liệu, nfs hoặc web) và sau đó tập lệnh "giải nén" thiết lập mọi thứ cho từng vai trò, tải dữ liệu vào mysql, thiết lập Chúng tôi làm điều này vì chúng tôi không muốn lưu hình ảnh máy chủ, chúng tôi luôn bắt đầu từ các trường hợp vanilla mà chúng tôi cài đặt mọi thứ từ đầu bằng cách sử dụng các tập lệnh được tạo trong nhà khác nhau. Thời gian khởi động không phải là vấn đề (chúng tôi sẵn sàng sử dụng trang trại trong 9 phút).
Vấn đề là đau khi cố gắng tìm phiên bản cơ sở dữ liệu phù hợp bất cứ khi nào chúng tôi cố gắng thiết lập xây dựng phát triển mới (tại bất kỳ thời điểm nào, chúng tôi có khoảng 4 bản dựng cho một dự án). Ngoài ra, git đang bắt đầu bị nghẹt thở một khi chúng tôi đi vào sản xuất, như các tập tin sql kết thúc lên tổng cộng khoảng 500mb.
Câu hỏi đặt ra là:
Mọi người khác quản lý cơ sở dữ liệu như thế nào? Tôi đã tìm kiếm một cái gì đó mà làm cho nó dễ dàng để đưa dữ liệu ra khỏi sản xuất vào dev, và cũng di chuyển dữ liệu từ dev vào sản xuất, nhưng đã không vấp vào bất cứ điều gì.
Tại sao bạn muốn di chuyển dữ liệu từ dev sang sản phẩm? –
@shsimsimulator - rất nhiều khung công tác (ví dụ: Magento, ATG, vv) lưu trữ dữ liệu cấu hình trong cơ sở dữ liệu cần được chuyển để nhân bản môi trường dev/dàn dựng –