Как я могу перенести мое существующее приложение rails на heroku? (sqlite to postgres)

У меня есть приложение Ruby on Rails, в которое уже загружены данные.

Я использовал настройку базы данных SQLite по умолчанию, поэтому все мои данные находятся там, но мне нужны все мои данные, чтобы перейти в мою базу данных Postgres на heroku.

Как я могу это сделать?

2 ответа

10 минут перехода от локального SQLite к Heroku Postgres

- обновляет ваш локальный dev на postgres по пути -

Это предполагает, что у вас есть база данных разработки в sqlite, и вы хотите переместить структуру и данные в heroku. Сначала вы измените локальное окружение на postgres, а затем переместитесь вверх.

Зачем менять? У вас всегда должна быть среда разработки, отражающая вашу производственную среду. Использование Postgres по умолчанию на героку.

Сначала вам нужно будет установить и настроить Postgres локально, используя пользователя с вашим именем пользователя.


Необходимое программное обеспечение: postgresql, pgloader, heroku-cli


меры

Перейдите с SQLite на Postgres в вашей среде разработки

  1. установите heroku / pgloader / postgres и убедитесь, что postgresql работает в вашей системе
  2. резервное копирование sqlite - скопировать development.sql в development_old.sql
  3. добавлять gem 'pg' в основной раздел вашего Gemfile
  4. комплектация
  5. обновить config/database.yml (см. пример ниже)
  6. грабли дб: настройка
  7. cd [корень приложения]
  8. загрузить postgres db с данными - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. Удалить gem 'sqlite3'
  10. комплектация
  11. запустить сервер - rails server
  12. проверить, посетив приложение на localhost: 3000

Настройте новое приложение на героку

Следуй этим инструкциям от героку

Переместить данные в героку

  1. найти геройку дб инфо - heroku pg:info
  2. стереть и сбросить удаленный дб - heroku pg:reset DATABASE_URL --app [name of app]
  3. подтолкнуть локальные данные к героку - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

ПРИМЕЧАНИЕ: если в этой базе данных более 10 тыс. Строк, вам также необходимо перейти на базовый уровень хобби на heroku.

Обновление Heroku до базового уровня хобби

  1. создать новый уровень - дополнения `heroku: создать heroku-postgresql: hobby-basic --app [имя приложения]
  2. получить новый URL базы данных - heroku pg:info
  3. включить обслуживание - heroku maintenance:on --app [name of app]
  4. скопировать данные - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. продвигать новые БД - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. отключить обслуживание
  7. проверить посетив приложение 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]

Эй, чувак, у вас есть все, что вам нужно внутри ссылки ниже

Как перейти с SQLite на PostgreSQL и развернуть на героку

дайте мне знать, если у вас есть какие-либо сомнения в отношении

Другие вопросы по тегам