PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak przenieść moją istniejącą aplikację rails na heroku? (sqlite do postgresa)

10 minut przejścia z lokalnego SQLite do postgresu Heroku

-- aktualizuje lokalnego programistę do postgresu po drodze --

Zakłada się, że masz programistyczną bazę danych w sqlite i chcesz przenieść strukturę i dane do heroku. Najpierw zmienisz swoje lokalne środowisko na postgres, a następnie przeniesiesz je w górę.

Dlaczego zmieniać? Zawsze powinieneś mieć swoje środowisko programistyczne, które odzwierciedla twoje środowisko produkcyjne. Korzystanie z Postgresa jest domyślne w heroku.

Musisz najpierw zainstalować i skonfigurować Postgres lokalnie z użytkownikiem, który ma Twoją nazwę użytkownika

Potrzebne oprogramowanie:postgresql, pgloader, heroku-cli

Kroki

Przejdź z SQLite do Postgres w swoim środowisku deweloperskim

  1. zainstaluj heroku / pgloader / postgres i upewnij się, że postgresql jest uruchomiony w twoim systemie
  2. backup sqlite - skopiuj development.sql do development_old.sql
  3. dodaj gem 'pg' do głównej sekcji pliku Gemfile
  4. Zainstaluj pakiet
  5. zaktualizuj plik config/database.yml (patrz przykład poniżej)
  6. bab danych prowizji:konfiguracja
  7. cd [główna aplikacja]
  8. załaduj bazę danych postgresa danymi - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. usuń gem 'sqlite3'
  10. Zainstaluj pakiet
  11. serwer startowy - rails server
  12. przetestuj, odwiedzając aplikację na localhost:3000

Skonfiguruj nową aplikację w heroku

Postępuj zgodnie z tymi instrukcjami z heroku

Przenieś dane do heroku

  1. znajdź informacje o bazie danych heroku — heroku pg:info
  2. skasuj i zresetuj zdalną bazę danych — heroku pg:reset DATABASE_URL --app [name of app]
  3. prześlij dane lokalne do heroku — heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

UWAGA:jeśli ta baza danych ma więcej niż 10 tys. wierszy, konieczne będzie również uaktualnienie do warstwy hobbystycznej w heroku

Aktualizacja Heroku do podstawowego poziomu Hobby

  1. utwórz nowy poziom – `heroku addons:create heroku-postgresql:hobby-basic --app [nazwa aplikacji]
  2. pobierz nowy adres URL bazy danych — heroku pg:info
  3. włącz konserwację — heroku maintenance:on --app [name of app]
  4. Kopiuj dane — heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. Promuj nową bazę danych — heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. wyłącz konserwację
  7. przetestuj, odwiedzając aplikację heroku

W przypadku napotkania problemów lub przypadków skrajnych, oto kilka pomocnych zasobów.

Zasoby:

  • https://pgloader.io
  • dokumentacja instalacji Postgres
  • instalacja nowych szyn heroku
  • informacje o CLI Heroku
  • za pomocą 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]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przejście z MySQL na PostgreSQL - wskazówki, triki i niedogodności?

  2. Zarządzanie kolejnym Commitfestem PostgreSQL

  3. Wykonaj dynamiczne zapytanie krzyżowe

  4. Sortowanie wartości null po wszystkich innych, z wyjątkiem specjalnych

  5. Niepowodzenie instalacji gem pg, mkmf.rb nie może znaleźć plików nagłówkowych dla ruby ​​(Mac OSX 10.6.5)