Как я могу перенести мое существующее приложение 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 в вашей среде разработки
- установите heroku / pgloader / postgres и убедитесь, что postgresql работает в вашей системе
- резервное копирование sqlite - скопировать development.sql в development_old.sql
- добавлять
gem 'pg'
в основной раздел вашего Gemfile - комплектация
- обновить config/database.yml (см. пример ниже)
- грабли дб: настройка
- cd [корень приложения]
- загрузить postgres db с данными -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- Удалить
gem 'sqlite3'
- комплектация
- запустить сервер -
rails server
- проверить, посетив приложение на localhost: 3000
Настройте новое приложение на героку
Следуй этим инструкциям от героку
Переместить данные в героку
- найти геройку дб инфо -
heroku pg:info
- стереть и сбросить удаленный дб -
heroku pg:reset DATABASE_URL --app [name of app]
- подтолкнуть локальные данные к героку -
heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]
ПРИМЕЧАНИЕ: если в этой базе данных более 10 тыс. Строк, вам также необходимо перейти на базовый уровень хобби на heroku.
Обновление Heroku до базового уровня хобби
- создать новый уровень - дополнения `heroku: создать 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]
- продвигать новые БД -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- отключить обслуживание
- проверить посетив приложение heroku
Если у вас возникнут проблемы или крайние случаи, вот несколько ресурсов, чтобы помочь.
Ресурсы:
- https://pgloader.io/
- Postgres установить документы
- геройку новые рельсы установить
- герои кли информация
- используя герою кли
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 и развернуть на героку
дайте мне знать, если у вас есть какие-либо сомнения в отношении