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

flyway không thể kết nối với vùng chứa postgres trong tập lệnh docker-entrypoint-initdb.d

Tôi đã gặp vấn đề tương tự khi chạy flyway khi tạo hình ảnh docker cho cơ sở dữ liệu của mình dựa trên hình ảnh postgres:10.5. Tôi đã thêm thông tin sau vào entrypoint.sh của mình trước khi chạy flyway, để xác nhận rằng vấn đề tôi gặp phải là do thay đổi docker-entrypoint.sh @Nick Maraston đã đăng trong câu trả lời của anh ấy:

echo "$(date) - waiting for database to start"
while ! pg_isready -h localhost -p 5432 -d $POSTGRES_DB
do
    echo "$(date) - waiting for database to start"
    sleep 10
done

Kết quả là đoạn mã trên đã lặp lại mãi mãi. Sau đó, tôi đã thay thế nó bằng mã sau để khởi động lại cơ sở dữ liệu đang lắng nghe các kết nối TCP / IP trên localhost:

pg_ctl -D "$PGDATA" -m fast -w stop
pg_ctl -D "$PGDATA" \
            -o "-c listen_addresses='localhost'" \
            -w start

Thay vì khởi động lại cơ sở dữ liệu như thế này, giải pháp tốt hơn sẽ là sử dụng JDBC -socketFactory tùy chọn được giải thích tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xác thực mật khẩu không thành công cho người dùng cây đậu đàn hồi ebroot

  2. Tại sao hiệu suất truy vấn PostgresQL giảm theo thời gian, nhưng được khôi phục khi xây dựng lại chỉ mục

  3. lấy bản ghi ba tháng trước từ bảng

  4. Di chuyển cơ sở dữ liệu từ Postgres sang MS SQL Servr

  5. Chú thích ngủ đông cho kiểu nối tiếp PostgreSQL