10 minut přechodu z místního SQLite na Heroku Postgres
- během cesty aktualizuje vašeho místního vývojáře na postgres --
To za předpokladu, že máte vývojovou databázi ve sqlite a chcete přesunout strukturu a data do heroku. Nejprve změníte své místní prostředí na postgres a poté to všechno přesunete nahoru.
proč měnit? Vaše vývojové prostředí by mělo vždy zrcadlit vaše produkční prostředí. Použití Postgres je na heroku výchozí.
Nejprve budete muset nainstalovat a nakonfigurovat Postgres lokálně s uživatelem, který má vaše uživatelské jméno
Potřebný software:postgresql, pgloader, heroku-cli
Kroky
Přejděte z SQLite na Postgres ve svém vývojářském prostředí
- nainstalujte heroku / pgloader / postgres a ujistěte se, že na vašem systému běží postgresql
- záloha sqlite – zkopírujte development.sql do development_old.sql
- přidat
gem 'pg'
do hlavní části vašeho Gemfile - instalace balíčku
- aktualizujte soubor config/database.yml (viz ukázka níže)
- rake db:setup
- cd [kořen aplikace]
- načíst data postgres db -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- odstraňte
gem 'sqlite3'
- instalace balíčku
- start server -
rails server
- otestujte návštěvou aplikace na localhost:3000
Nastavit novou aplikaci na heroku
Postupujte podle těchto pokynů od heroku
Přesunout data do heroku
- najít informace o heroku db -
heroku pg:info
- vymazat a resetovat vzdálenou databázi -
heroku pg:reset DATABASE_URL --app [name of app]
- push místní data do heroku -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
POZNÁMKA:Pokud má databáze více než 10 000 řádků, budete také muset upgradovat na úroveň hobby-basic na heroku
Upgrade Heroku na Hobby Tier Basic
- vytvořit novou úroveň – `heroku addons:create heroku-postgresql:hobby-basic --app [název aplikace]
- získejte adresu URL nové databáze -
heroku pg:info
- zapnout údržbu –
heroku maintenance:on --app [name of app]
- kopírovat data –
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- propagovat novou databázi -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- vypnout údržbu
- otestujte návštěvou aplikace heroku
V případě, že narazíte na problémy nebo okrajové případy, zde je několik zdrojů, které vám pomohou.
Zdroje:
- https://pgloader.io
- instalační dokumenty postgres
- instalace nových kolejnic herou
- informace o heroku cli
- pomocí heroku cli
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]