Nếu bạn đang gửi đến Heroku 1.sql
tệp được tạo cho H2
, rất có thể chúng sẽ xung đột, thay vào đó, hãy đặt url của Heroku trong application.conf
dưới dạng db.default.url
và chạy nó ở chế độ dev trên localhost trước để tạo Postres SQL hợp lệ. Ngoài ra, bạn sẽ cần nhận xét về db.default.user
và db.default.password
cài đặt, vì URL của Heroku đã chứa thông tin này.
Nếu bạn không biết URL của kết nối hiện tại, bạn sẽ tìm thấy nó trên:
https://postgres.heroku.com/ -> YourDBs
-> db-name -> Connection settings
-> JDBC URL
Để kết nối từ máy chủ cục bộ (hoặc máy khác, không phải trong không gian của Heroku), bạn cần thêm thông số này vào URL:
&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Nhờ cách tiếp cận này, bạn có thể kiểm tra ứng dụng của mình cục bộ với kết nối được thiết lập với DB của Heroku từ xa, (đừng ngạc nhiên - sự kết hợp đó sẽ chậm hơn nhiều so với làm việc với local app + local DB
hoặc Heroku app + Heroku DB
) dù sao để thử nghiệm, tốt hơn là liên tục đẩy các bản sửa lỗi nhỏ lên đám mây.
Ngoài ra, bạn sẽ có thể thực hiện các bước phát triển từ localhost - mà không cần đẩy mã sang Heroku và cách tiếp cận thực sự ngắn hơn nếu bạn gặp sự cố trong SQL của mình.
Ngoài ra, đây là dịp tốt để bật tính năng ghi nhật ký SQL ở chế độ nhà phát triển cục bộ và tìm kiếm các truy vấn SQL dư thừa, nếu bạn loại bỏ tất cả các truy vấn không cần thiết và hài lòng trên localhost, sau khi triển khai lên Heroku, bạn sẽ hài lòng hơn nhiều:)
Đặt lại
Nếu bạn sẽ tạo 1.sql
thích hợp thì hầu hết có lẽ bạn sẽ cần đặt lại DB của mình có cấu trúc không hợp lệ (vì tôi cho rằng đó không phải là vấn đề khi bạn vừa chuyển từ cục bộ sang Heroku). Trước tiên, hãy tìm tên của DB cho ứng dụng hiện tại (với bash, trong thư mục của ứng dụng):
heroku pg
Và sau đó đặt lại nó bằng (nó sẽ phá hủy tất cả dữ liệu vì vậy hãy cân nhắc sao lưu trước nếu bạn không muốn mất dữ liệu của mình!):
heroku pg:reset HEROKU_DATABASE_SOMEBASE