PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Ứng dụng Rails trên Heroku không thể ghi vào cơ sở dữ liệu PostgreSQL, chỉ đọc

Điều này nghe có vẻ giống như một vấn đề giao dịch, trong đó bạn không COMMIT Tiếp tục các giao dịch của bạn sau khi bạn thực hiện, vì vậy các thay đổi sẽ bị mất. Nếu trình điều khiển SQLite của bạn mặc định là COMMIT ting giao dịch bị đóng mà không có COMMIT rõ ràng hoặc khôi phục và trình điều khiển Pg của bạn mặc định thành ROLLBACK , bạn sẽ nhận được hành vi được mô tả. Điều tương tự sẽ xảy ra nếu SQLite mặc định tự động cắm từng câu lệnh theo mặc định và trình điều khiển trình điều khiển Pg mặc định mở một giao dịch.

Đây là một trong nhiều lý do chính đáng để sử dụng cùng một cơ sở dữ liệu cục bộ để thử nghiệm khi bạn sẽ triển khai khi bạn muốn hoạt động.

Nếu bạn đang sử dụng phiên bản Pg bình thường, tôi sẽ yêu cầu bạn bật log_statement = 'all' trong postgresql.conf , tải lại Pg và xem nhật ký. Bạn không thể làm điều đó trên Heroku, nhưng bạn có quyền truy cập vào nhật ký Pg với heroku logs --ps postgres . Thử chạy ALTER USER my_heroku_user SET log_statement = 'all'; , kiểm tra lại và kiểm tra nhật ký.

Ngoài ra, hãy cài đặt Pg cục bộ.

Các khả năng khác ít có khả năng xảy ra hơn mà bạn nghĩ đến:

  • Bạn đang sử dụng các giao dịch SERIALIZABLE lâu dài để đọc, vì vậy ảnh chụp nhanh của chúng sẽ không bao giờ được cập nhật. Khá khó.
  • Quyền trên các đối tượng cơ sở dữ liệu đang gây ra INSERT s, UPDATE s, v.v. không thành công và ứng dụng của bạn đang bỏ qua các lỗi phát sinh. Một lần nữa, không chắc.
  • Bạn có DO INSTEAD các quy tắc không thực hiện những gì bạn mong đợi hoặc BEFORE kích hoạt trả về NULL , do đó âm thầm biến các hoạt động thành việc không cần thiết. Có vẻ khó xảy ra nếu bạn đang thử nghiệm với SQLite.
  • Bạn đang viết thư cho một DB khác với DB bạn đang đọc. Không phải là không thể trong các thiết lập đang cố gắng đọc từ một cụm các phím chờ nóng, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng hàm chuỗi con trong PostgreSQL và Redshift

  2. Làm cách nào để tìm tên cơ sở dữ liệu của các thư mục \ data \ base postgres?

  3. Cách giải quyết vấn đề AWS RDS:psycopg2.OperationalError:FATAL:xác thực mật khẩu không thành công cho người dùng root

  4. Sửa bảng TOAST bị hỏng

  5. không thể kết nối với máy chủ cho Postgres