sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo muevo mi aplicación Rails existente a Heroku? (sqlite a postgres)

Pasar en 10 minutos de SQLite local a Heroku Postgres

-- actualiza tu desarrollador local a postgres en el camino --

Esto supone que tiene una base de datos de desarrollo en sqlite y desea mover la estructura y los datos a heroku. Primero cambiará su entorno local a postgres y luego lo moverá todo hacia arriba.

¿Por qué cambiar? Siempre debe hacer que su entorno de desarrollo refleje su entorno de producción. El uso de Postgres es el predeterminado en heroku.

Deberá instalar y configurar Postgres localmente primero con un usuario que tenga su nombre de usuario

Software necesario:postgresql, pgloader, heroku-cli

Pasos

Pase de SQLite a Postgres en su entorno de desarrollo

  1. instale heroku / pgloader / postgres y asegúrese de que postgresql se esté ejecutando en su sistema
  2. copia de seguridad de sqlite - copia development.sql a development_old.sql
  3. añadir gem 'pg' a la sección principal de su Gemfile
  4. instalación de paquete
  5. actualice config/database.yml (vea el ejemplo a continuación)
  6. rake db:configuración
  7. cd [raíz de la aplicación]
  8. cargar la base de datos de postgres con datos - pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
  9. eliminar gem 'sqlite3'
  10. instalación de paquete
  11. servidor de inicio - rails server
  12. prueba visitando la aplicación en localhost:3000

Configurar una nueva aplicación en heroku

Sigue estas instrucciones de heroku

Mover datos a heroku

  1. encontrar información de heroku db - heroku pg:info
  2. borrar y restablecer la base de datos remota - heroku pg:reset DATABASE_URL --app [name of app]
  3. envíe datos locales a heroku - heroku pg:push [name of postgres dev db] DATABASE_URL --app [name of app]

NOTA:si esa base de datos tiene más de 10k filas, también deberá actualizar a un nivel básico de pasatiempo en heroku

Actualización de Heroku al nivel de aficionado básico

  1. crear nuevo nivel - `heroku addons:create heroku-postgresql:hobby-basic --app [nombre de la aplicación]
  2. obtener la nueva URL de la base de datos - heroku pg:info
  3. activar el mantenimiento - heroku maintenance:on --app [name of app]
  4. copiar datos - heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  5. promover nueva base de datos - heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
  6. desactivar el mantenimiento
  7. prueba visitando la aplicación heroku

En caso de que tenga problemas o casos extremos, aquí hay algunos recursos para ayudarlo.

Recursos:

  • https://pgloader.io
  • documentos de instalación de postgres
  • instalación de nuevos rieles de heroku
  • información de CLI de heroku
  • utilizando la CLI de 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]