Tôi đang sử dụng Liquibase 3.3.5 để cập nhật cơ sở dữ liệu của mình. Có ngữ cảnh là một cách hay để chỉ thực thi các phần cụ thể của thay đổi. Nhưng tôi không hiểu, tại sao TẤT CẢ các thay đổi được thực hiện, khi không có ngữ cảnh nào được cung cấp khi cập nhật. Hãy xem xét ví dụ sau:Tại sao tất cả các bối cảnh được thực hiện khi không được chỉ định trên cập nhật?
- changeset A: context = kiểm tra
- changeset B: không có bối cảnh
- changeset C: context = prod
Vì vậy
- thực hiện cập nhật với context = test, sẽ thực hiện changeset A + B.
- thực hiện cập nhật với context = prod, sẽ thực thi thay đổi B + C.
- thực hiện cập nhật không có ngữ cảnh, sẽ thực thi thay đổi A + B + C.
Đối với tôi, điều này không có ý nghĩa gì cả :).
Tôi hy vọng rằng chỉ có thay đổi B sẽ được thực hiện vì nó không xác định ngữ cảnh cụ thể.
Trong ví dụ ngữ cảnh Liquibase: http://www.liquibase.org/documentation/contexts.html ("Sử dụng ngữ cảnh cho dữ liệu thử nghiệm"), người ta nên đánh dấu các thay đổi để thử nghiệm bằng "kiểm tra" và thực thi chúng với ngữ cảnh "thử nghiệm" để áp dụng testdata. Tốt - có ý nghĩa. Nhưng
"Khi đến lúc di chuyển cơ sở dữ liệu sản xuất của bạn, không bao gồm bối cảnh" thử nghiệm "và dữ liệu thử nghiệm của bạn không được bao gồm. "
Vì vậy, nếu tôi sẽ không xác định 'test' bối cảnh khi thực hiện cập nhật sản xuất, nó sẽ thực hiện 'test' changesets là tốt, vì tôi không thể chỉ định một bối cảnh ở tất cả.
Một lần nữa, tôi hy vọng rằng rời ra thử nghiệm trên bản cập nhật thi công, sẽ chỉ thực hiện các changesets thường xuyên mà không các changesets thử nghiệm.
Hoặc tôi đang thiếu một cái gì đó ở đây :)?
Ok, cảm ơn bạn đã làm rõ :)! Thay đổi đó sẽ phá vỡ khả năng tương thích ngược, đó là chắc chắn. Nhưng với tư cách là một người dùng mới của Liquibase, điều đó không cảm thấy "tự nhiên" đối với tôi, do đó là câu hỏi. Nếu bạn luôn sử dụng ngữ cảnh, có vẻ như ok để thực hiện theo cách đó. Có kế hoạch nào để thay đổi hành vi đó không? – javg
Như bạn đã lưu ý, việc thay đổi nó sẽ phá vỡ khả năng tương thích ngược, vì vậy rất khó có thể thay đổi. Nó sẽ có lợi để cải thiện tài liệu. Nếu bạn quan tâm, tài liệu là tất cả trong GitHub, và nhóm nghiên cứu hoan nghênh yêu cầu kéo! https://github.com/liquibase/liquibase.github.com ps - nếu câu trả lời của tôi hữu ích, vui lòng 'chấp nhận câu trả lời' làm câu trả lời đúng. – SteveDonie