2012-11-12 27 views
6

Tôi có một nhiệm vụ trong phing, trước khi thử nghiệm tôi thả cơ sở dữ liệu nếu tồn tại và tạo ra nó. Điều này được chạy trên Jenkins. Tôi muốn làm điều đó với createdb như thế này:Làm thế nào để cung cấp một mật khẩu cho PostgreSQL's createdb không tương tác?

<exec command="createdb my_database" /> 

Cái này là các createdb là yêu cầu tôi để xác thực và thêm tham số -Umy_user không phải là một vấn đề - vấn đề là tôi không thể chỉ định một mật khẩu trong lệnh createb. Và tôi không muốn tạo một vai trò cho người dùng hệ thống ("jenkins" trong trường hợp này). Có một giải pháp cho điều đó không?

Trả lời

12

createdb sẽ sử dụng biến môi trường PGPASSWORD nếu được đặt, đó là một cách đơn giản để cung cấp mật khẩu trong các lần chạy không tương tác.

Một tùy chọn khác là thiết lập tệp .pgpass trong thư mục chính của người dùng Unix xuất phát số createdb.

+0

Với .pgpass, ban đầu tôi đã thử nhập một dòng chỉ định tên của cơ sở dữ liệu mà tôi muốn tạo. Tuy nhiên, tôi vẫn nhận được lời nhắc mật khẩu trên 'createdb'. Có vẻ như tên cơ sở dữ liệu phải là '*'. –

Các vấn đề liên quan