- PostgreSQL 9.1
- bảng được chia
- tbl_master
- tbl_slave1 (master iherits)
- tbl_slave2 (master iherits)
- Yii khung 1.1.10
Có thể một người nào đó có thể chê bai expierience của mình về bảng phân vùng Yii + PostgreSQL. PostgreSQL phần với các bảng phân vùng, kiểm tra và gây nên tác phẩm tuyệt vời, nhưng tôi không thể nhận Yii để tình yêu các bảng ..khuôn khổ Yii và PostgreSQL chia bảng - 0 rows affected
Vấn đề là trên chèn vào bảng phân vùng PostgreSQL cho 0 rows affected
và tôi không thể tìm ra cách để giải quyết vấn đề này. Mô hình Yii cho rằng bản ghi mới không được lưu (nhưng đó là) và $Model->save();
trả về false và do đó afterSave()
không hoạt động, v.v.
Tất cả các phương pháp khác là ->find()
hoặc ->findAll()
đang hoạt động tốt. Ngay cả khi tôi cập nhật ngay bây giờ lưu lại hồ sơ ném yii tất cả là ok và tôi nhận được thực hiện afterSave
là tốt. Vấn đề chỉ với ->save()
một phần. Cập nhật hoạt động vì tôi chỉ kích hoạt khi chèn các hàng mới.
Tôi đang sử dụng trình kích hoạt để chia dữ liệu mới theo bảng. Có lẽ tôi cần phải sửa đổi kích hoạt để postgres biết những gì tôi đang chuyển tiếp dữ liệu mới đến slave
bảng không master
?
Một điều nữa. Tôi đã thêm khóa chính vào master
bảng để Mô hình Yii (CActiveRecord) không ném lỗi về bảng mà không có pk. Tôi biết tài liệu không đề nghị này, nhưng tôi đã nhận nó làm việc theo cách này. Chỉ cần cố gắng cung cấp cho hình ảnh lớn về tình huống của tôi.
Cảm ơn!
Cách giải quyết không tốt lắm: Sử dụng 'RETURN NEW;' trong trình kích hoạt thay vì 'RETURN NULL;'. Và bây giờ tôi có hai hàng giống hệt nhau - một trong 'master' và thứ hai trong bảng' slave'. Vì vậy, tôi cần phải thêm trigger 'SAU CH INSN' để xóa bảng 'master' (' DELETE FROM ONLY master'). * Suy nghĩ thật to .. * - nhưng nó sẽ hoạt động. –
** Xác nhận ** nhận xét trước đó - nó đang hoạt động. Để bây giờ nó là workaround tốt. –