10 минути Преместване от локален SQLite към Heroku Postgres
-- актуализира вашия локален разработчик до postgres по пътя --
Това предполага, че имате база данни за разработка в sqlite и искате да преместите структурата и данните в heroku. Първо ще промените вашата локална среда на postgres, след което ще преместите всичко нагоре.
Защо се променя? Винаги трябва вашата среда за разработка да отразява вашата производствена среда. Използването на Postgres е по подразбиране на heroku.
Ще трябва първо да инсталирате и конфигурирате Postgres локално с потребител, който има вашето потребителско име
Необходим софтуер:postgresql, pgloader, heroku-cli
Стъпки
Преместете се от SQLite към Postgres във вашата среда за разработка
- инсталирайте heroku / pgloader / postgres и се уверете, че postgresql работи на вашата система
- backup sqlite – копирайте development.sql в development_old.sql
- добавете
gem 'pg'
към главната секция на вашия Gemfile - пакетна инсталация
- актуализиране на config/database.yml (вижте примера по-долу)
- rake db:setup
- cd [корен на приложението]
- заредете postgres db с данни -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- премахнете
gem 'sqlite3'
- пакетна инсталация
- стартов сървър -
rails server
- тествайте, като посетите приложението на localhost:3000
Настройте ново приложение на heroku
Следвайте тези инструкции от heroku
Преместване на данни в heroku
- намерете информация за heroku db -
heroku pg:info
- изтриване и нулиране на отдалечен db -
heroku pg:reset DATABASE_URL --app [name of app]
- изпратете локални данни към heroku -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
ЗАБЕЛЕЖКА:ако тази база данни има повече от 10 000 реда, ще трябва също да надстроите до ниво, базирано на хобита, на heroku
Надграждане на Heroku до Hobby Tier Basic
- създайте ново ниво - `heroku addons:create heroku-postgresql:hobby-basic --app [име на приложението]
- вземете новия URL адрес на базата данни -
heroku pg:info
- включване на поддръжката -
heroku maintenance:on --app [name of app]
- копиране на данни -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- популяризирайте нов db -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- изключете поддръжката
- тествайте, като посетите приложението heroku
В случай, че срещнете проблеми или крайни случаи, ето някои ресурси за помощ.
Ресурси:
- https://pgloader.io
- документи за инсталиране на postgres
- инсталиране на нови релси на heroku
- heroku cli информация
- с помощта на 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]