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

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

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

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Эй, чувак, у тебя есть все, что тебе нужно, по ссылке ниже

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

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

0 голосов
/ 27 июня 2018

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

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

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

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

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


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


Steps

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

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

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

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

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

  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 до базового уровня Hobby

  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]
...