Điểm:0

Thiết lập PostgreSQL DB với tập lệnh bash sử dụng các biến từ tệp .env

lá cờ ca

Tôi đang cố gắng thiết lập PostgreSQL bằng tập lệnh bash lấy các biến từ tệp .env.

Mã của tôi -

#!/bin/bash

DB_NAME=$(grep DB_NAME .env | cut -d '=' -f 2-)
DB_USER=$(grep DB_USER .env | cut -d '=' -f 2-)
DB_PASSWORD=$(grep DB_PASSWORD .env | cut -d '=' -f 2-)

tiếng vang $DB_NAME;
tiếng vang $DB_USER;
tiếng vang $DB_PASSWORD;

sudo -u postgres psql -c "TẠO CƠ SỞ DỮ LIỆU $DB_NAME;"

sudo -u postgres psql -c "TẠO NGƯỜI DÙNG $DB_USER VỚI MẬT KHẨU '$DB_PASSWORD';"
sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read commit';"
sudo -u postgres psql -c "THAY ĐỔI VAI TRÒ $DB_USER ĐẶT múi giờ THÀNH 'UTC';"
sudo -u postgres psql -c "CẤP TẤT CẢ CÁC ĐẶC QUYỀN TRÊN CƠ SỞ DỮ LIỆU $DB_NAME CHO $DB_USER;"

Nếu tôi lặp lại các biến trước khi chạy cơ sở dữ liệu postgres tạo các dòng như sau, chúng sẽ xuất các biến chính xác được đọc từ tệp .env.

#!/bin/bash

DB_NAME=$(grep DB_NAME .env | cut -d '=' -f 2-)
DB_USER=$(grep DB_USER .env | cut -d '=' -f 2-)
DB_PASSWORD=$(grep DB_PASSWORD .env | cut -d '=' -f 2-)

tiếng vang $DB_NAME;
tiếng vang $DB_USER;
tiếng vang $DB_PASSWORD;

sudo -u postgres psql -c "TẠO CƠ SỞ DỮ LIỆU $DB_NAME;"

sudo -u postgres psql -c "TẠO NGƯỜI DÙNG $DB_USER VỚI MẬT KHẨU '$DB_PASSWORD';"
sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read commit';"
sudo -u postgres psql -c "THAY ĐỔI VAI TRÒ $DB_USER ĐẶT múi giờ THÀNH 'UTC';"
sudo -u postgres psql -c "CẤP TẤT CẢ CÁC ĐẶC QUYỀN TRÊN CƠ SỞ DỮ LIỆU $DB_NAME CHO $DB_USER;"

Nhưng sau khi tập lệnh được chạy, tôi không thể đăng nhập bằng tổ hợp người dùng và mật khẩu bằng cách sử dụng -

psql -h localhost -d mydb -U myuser -p 5432

Sau khi nhập mật khẩu, nó hiển thị -

psql: lỗi: FATAL: xác thực mật khẩu không thành công cho người dùng "myuser"
FATAL: xác thực mật khẩu không thành công cho người dùng "mydb"

Tệp .env của tôi trông như thế này -

#WORK_ENV có thể là cục bộ, thử nghiệm, dàn dựng hoặc sản xuất
WORK_ENV=cục bộ

# khóa bí mật django
SECRET_KEY='khoá-bí-mật-của-bạn-đi-tại-đây'

# cơ sở dữ liệu
DB_NAME=your_db_name
DB_USER=your_db_user_name
DB_PASSWORD=your_db_password
DB_HOST=máy chủ cục bộ
DB_PORT=5432

SENTRY_DSN=your-unique-sentry-project-link

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.