10 phút di chuyển từ Local SQLite sang Heroku Postgres
- cập nhật nhà phát triển địa phương của bạn lên postgres trong quá trình thực hiện -
Điều này giả sử bạn có một cơ sở dữ liệu phát triển trong sqlite và bạn muốn di chuyển cấu trúc và dữ liệu sang heroku. Trước tiên, bạn sẽ thay đổi môi trường cục bộ của mình thành postgres, sau đó chuyển nó lên.
Tại sao thay đổi? Bạn phải luôn có môi trường phát triển phản ánh môi trường sản xuất của bạn. Sử dụng Postgres là mặc định trên heroku.
Trước tiên, bạn cần cài đặt và định cấu hình Postgres cục bộ với người dùng có tên người dùng của bạn
Phần mềm cần thiết:postgresql, pgloader, heroku-cli
Các bước
Di chuyển từ SQLite sang Postgres trên môi trường nhà phát triển của bạn
- cài đặt heroku / pgloader / postgres và đảm bảo rằng postgresql đang chạy trên hệ thống của bạn
- sao lưu sqlite - sao chép development.sql sang development_old.sql
- thêm
gem 'pg'
vào phần chính của Gemfile của bạn - gói cài đặt
- cập nhật config / database.yml (xem mẫu bên dưới)
- rake db:setup
- cd [gốc ứng dụng]
- tải postgres db với dữ liệu -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- loại bỏ
gem 'sqlite3'
- gói cài đặt
- máy chủ khởi động -
rails server
- kiểm tra bằng cách truy cập ứng dụng tại localhost:3000
Thiết lập ứng dụng mới trên heroku
Làm theo các hướng dẫn sau từ heroku
Di chuyển dữ liệu sang heroku
- tìm thông tin về heroku db -
heroku pg:info
- xóa và đặt lại db từ xa -
heroku pg:reset DATABASE_URL --app [name of app]
- đẩy dữ liệu cục bộ vào heroku -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
LƯU Ý:nếu cơ sở dữ liệu đó có hơn 10 nghìn hàng, bạn cũng sẽ cần nâng cấp lên cấp cơ bản theo sở thích trên heroku
Nâng cấp Heroku lên Cấp Sở thích Cơ bản
- tạo tầng mới - `heroku addons:create heroku-postgresql:Sở thích-cơ bản --app [tên ứng dụng]
- lấy url cơ sở dữ liệu mới -
heroku pg:info
- bật bảo trì -
heroku maintenance:on --app [name of app]
- sao chép dữ liệu -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- quảng cáo db mới -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- tắt bảo trì
- kiểm tra bằng cách truy cập ứng dụng heroku
Trong trường hợp bạn gặp phải sự cố hoặc các trường hợp khó khăn, đây là một số tài nguyên để trợ giúp.
Tài nguyên:
- https://pgloader.io
- tài liệu cài đặt postgres
- cài đặt đường ray mới của heroku
- thông tin cli heroku
- sử dụng cli heroku
database_sample.yml
default: &default
adapter: postgresql
encoding: unicode
host: localhost
port: 5432
# For details on connection pooling, see Rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: [name of app]_dev
test:
<<: *default
database: [name of app]_test
staging:
<<: *default
database: [name of app]
production:
<<: *default
database: [name of app]