2015-01-20 37 views
7

Chúng tôi giữ bộ nhớ cache của học thuyết của mình bằng màu đỏ và sử dụng capistrano để triển khai. Mọi thứ hoạt động tốt cho đến khi chúng ta phải loại bỏ một trường trên thực thể.Xóa bộ nhớ cache của học thuyết bằng cách triển khai

Khi bài cài đặt lệnh trong nhà soạn nhạc được thực hiện, chúng tôi nhận được lỗi như:

[ReflectionException] ** [ra Các đối tượng sở hữu \ PlayerRecord :: $ shirtNumber không tồn tại

$shirtNumber là trường mà chúng tôi đã xóa. Để có thể tiếp tục, chúng ta chỉ cần xóa bộ nhớ cache của doctrine nhưng vì nó nằm trong cơ sở dữ liệu redis, cache được chia sẻ với production.

Câu hỏi đặt ra là làm cách nào để chúng tôi có thể tự động thay đổi cài đặt kết nối cho redis trên từng triển khai? Những ý tưởng duy nhất mà tôi suy nghĩ của tôi là:

  1. sửa đổi parameters.yml trên đầu triển khai
  2. sử dụng biến môi trường đó sẽ thay đổi theo từng triển khai
  3. di chuyển redis cài đặt kết nối đến một tập tin đó sẽ liên kết mềm tới một trong các cấu hình

Bạn có ý tưởng nào khác hoặc ý tưởng nào tốt hơn trong ý kiến ​​của bạn?

+0

Vấn đề này đã được báo cáo trong http: //www.doctrine-project. org/jira/duyệt/DDC-3230 nhưng chưa được giải quyết –

Trả lời

3

Vì vậy, có vẻ như tôi đang cố gắng làm quá nhiều thứ vì thiếu kiến ​​thức.

tôi giải quyết vấn đề sử dụng Doctrine Cache namespaces

Tôi đang sử dụng SncRediBundle và các giải pháp đơn giản là sử dụng cấu hình này:

doctrine: 
    metadata_cache: 
     client: cache 
     namespace: "%kernel.root_dir%" 
     entity_manager: default 
Các vấn đề liên quan