PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara memindahkan aplikasi Rails yang ada ke heroku? (sqlite ke postgres)

10 Menit Berpindah dari SQLite Lokal ke Postgres Heroku

-- memperbarui dev lokal Anda ke postgres di sepanjang jalan --

Ini dengan asumsi Anda memiliki database pengembangan di sqlite dan Anda ingin memindahkan struktur dan data ke heroku. Pertama-tama Anda akan mengubah lingkungan lokal Anda menjadi postgres, lalu memindahkan semuanya ke atas.

Mengapa berubah? Anda harus selalu memiliki lingkungan pengembangan yang mencerminkan lingkungan produksi Anda. Menggunakan Postgres adalah default di heroku.

Anda harus menginstal dan mengonfigurasi Postgres secara lokal terlebih dahulu dengan pengguna yang memiliki nama pengguna Anda

Perangkat lunak yang dibutuhkan:postgresql, pgloader, heroku-cli

Langkah

Pindah dari SQLite ke Postgres di lingkungan dev Anda

  1. instal heroku / pgloader / postgres, dan pastikan postgresql berjalan di sistem Anda
  2. backup sqlite - salin development.sql ke development_old.sql
  3. tambahkan gem 'pg' ke bagian utama Gemfile Anda
  4. instalasi bundel
  5. perbarui config/database.yml (lihat contoh di bawah)
  6. menggaruk db:setup
  7. cd [root aplikasi]
  8. memuat postgres db dengan data - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. hapus gem 'sqlite3'
  10. instalasi bundel
  11. mulai server - rails server
  12. uji dengan mengunjungi aplikasi di localhost:3000

Siapkan aplikasi baru di heroku

Ikuti petunjuk berikut dari heroku

Pindahkan data ke heroku

  1. cari info db heroku - heroku pg:info
  2. hapus dan setel ulang db jarak jauh - heroku pg:reset DATABASE_URL --app [name of app]
  3. push data lokal ke heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

CATATAN:jika database itu memiliki lebih dari 10k baris, Anda juga perlu meningkatkan ke tingkat hobi-dasar di heroku

Meningkatkan Heroku ke Tingkat Hobi Dasar

  1. buat tier baru - `heroku addons:create heroku-postgresql:hobby-basic --app [nama aplikasi]
  2. dapatkan url database baru - heroku pg:info
  3. aktifkan pemeliharaan - heroku maintenance:on --app [name of app]
  4. salin data - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promosikan db baru - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. matikan pemeliharaan
  7. uji dengan mengunjungi aplikasi heroku

Jika Anda mengalami masalah atau kasus edge, berikut beberapa referensi untuk membantu.

Sumber daya:

  • https://pgloader.io
  • dokumen pemasangan postgres
  • pemasangan rel baru heroku
  • info klip heroku
  • menggunakan kli 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]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang setara dengan LISTAGG (database Oracle) di PostgreSQL?

  2. Roda bangunan gagal untuk psycopg2 - MacOSX menggunakan virtualenv dan pip

  3. datagrip Tidak dapat menerapkan perubahan Tabel ini hanya dapat dibaca. Perubahan editor sel tidak dapat diterapkan

  4. Bagaimana cara meneruskan array tipe khusus ke fungsi Postgres

  5. Kesalahan NodeJS Postgres getaddrinfo ENOTFOUND