10 minuter flytta från lokal SQLite till en Heroku Postgres
-- uppdaterar din lokala utvecklare till postgres längs vägen --
Detta förutsätter att du har en utvecklingsdatabas i sqlite och du vill flytta strukturen och data till heroku. Du kommer först att ändra din lokala miljö till postgres och sedan flytta upp det hela.
Varför ändra? Du bör alltid ha din utvecklingsmiljö spegla din produktionsmiljö. Att använda Postgres är standard på heroku.
Du måste först installera och konfigurera Postgres lokalt med en användare som har ditt användarnamn
Programvara som behövs:postgresql, pgloader, heroku-cli
Steg
Flytta från SQLite till Postgres på din utvecklarmiljö
- installera heroku / pgloader / postgres och se till att postgresql körs på ditt system
- säkerhetskopiering av sqlite - kopiera development.sql till development_old.sql
- lägg till
gem 'pg'
till huvuddelen av din Gemfil - paketinstallation
- uppdatera config/database.yml (se exempel nedan)
- rake db:setup
- cd [applikationsrot]
- ladda postgres db med data -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- ta bort
gem 'sqlite3'
- paketinstallation
- startserver -
rails server
- testa genom att besöka appen på localhost:3000
Konfigurera ny app på heroku
Följ dessa instruktioner från heroku
Flytta data till heroku
- hitta heroku db info -
heroku pg:info
- radera och återställa fjärrdb -
heroku pg:reset DATABASE_URL --app [name of app]
- skjuta lokal data till heroku -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
OBS:om databasen har fler än 10 000 rader måste du också uppgradera till en hobbybasnivå på heroku
Uppgraderar Heroku till Hobby Tier Basic
- skapa ny nivå - `heroku addons:create heroku-postgresql:hobby-basic --app [namn på app]
- skaffa den nya databasens webbadress -
heroku pg:info
- aktivera underhåll -
heroku maintenance:on --app [name of app]
- kopiera data -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- marknadsför ny db -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- stänga av underhåll
- testa genom att besöka heroku-appen
Om du stöter på problem eller problem som kan vara fördelaktiga, här är några resurser som kan hjälpa dig.
Resurser:
- https://pgloader.io
- postgres installationsdokument
- heroku nya rails installeras
- heroku cli info
- med 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]