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
- instale heroku / pgloader / postgres y asegúrese de que postgresql se esté ejecutando en su sistema
- copia de seguridad de sqlite - copia development.sql a development_old.sql
- añadir
gem 'pg'
a la sección principal de su Gemfile - instalación de paquete
- actualice config/database.yml (vea el ejemplo a continuación)
- rake db:configuración
- cd [raíz de la aplicación]
- cargar la base de datos de postgres con datos -
pgloader ./db/development.sqlite3 postgresql:///[name of postgres dev db]
- eliminar
gem 'sqlite3'
- instalación de paquete
- servidor de inicio -
rails server
- prueba visitando la aplicación en localhost:3000
Configurar una nueva aplicación en heroku
Sigue estas instrucciones de heroku
Mover datos a heroku
- encontrar información de heroku db -
heroku pg:info
- borrar y restablecer la base de datos remota -
heroku pg:reset DATABASE_URL --app [name of app]
- 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
- crear nuevo nivel - `heroku addons:create heroku-postgresql:hobby-basic --app [nombre de la aplicación]
- obtener la nueva URL de la base de datos -
heroku pg:info
- activar el mantenimiento -
heroku maintenance:on --app [name of app]
- copiar datos -
heroku pg:copy DATABASE_URL [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- promover nueva base de datos -
heroku pg:promote [HEROKU_POSTGRESQL_COLOR_URL] --app [name of app]
- desactivar el mantenimiento
- 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]