tutorial pricing premium postgres create addon postgresql heroku taps

postgresql - pricing - Error al enviar datos a Heroku: desplazamiento de zona horaria fuera de rango



heroku postgresql addon (11)

¿En qué pila de Heroku estás? Si está en bamboo-ree-1.8.7, la versión correcta para usar es 1.8.7. Este es un problema de clasificación y se puede resolver utilizando la misma versión de Ruby tanto en el servidor como en el cliente.

Ejecuto el siguiente comando para enviar los contenidos de mi base de datos local a Heroku:

heroku db:push --app my-app

Desde la computadora de mi casa esto funciona perfectamente, pero desde mi computadora de trabajo me sale este error:

Error de servidor de Taps: PGError: ERROR: desplazamiento de zona horaria fuera de rango: "2011-11-15 12: 00: 00.000000 + 5894114400"

No estoy seguro de dónde viene esa fecha, no puedo encontrarla en los datos en ningún lado. ¿Alguna idea de lo que está pasando y / o cómo solucionarlo?


Ejecuto 1.9.3p125 en Heroku y 1.9.3p125 en mi máquina local. Si quiero db:push I simplemente cambie a 1.9.2 mientras lo carga :

rvm use ruby-1.9.2-p290 heroku db:push --app my-app rvm use ruby-1.9.3-p125

Luego, una vez que se complete el empuje, volveré a cambiar a 1.9.3.


En mi plataforma de elección (gentoo linux) Ruby 1.9.2 ya no está disponible. De todos modos, una versión de ruby ​​1.8.x se puede instalar al mismo tiempo.

Aquí es cómo trabajé alrededor del problema:

$ eselect ruby list Available Ruby profiles: [1] ruby18 (with Rubygems) [2] ruby19 (with Rubygems) * $ sudo eselect ruby set 1 Password: Successfully switched to profile: ruby18

Ahora tenía que comentar temporalmente desde mi proyecto Gemfile todas las gemas que no funcionan con ruby ​​1.8 (por ejemplo clip de papel)

$ bundle install & bundle exec heroku db:push

Descomentar de Gemfile lo que se comentó antes

$ sudo eselect ruby set 2 Password: Successfully switched to profile: ruby19

No es una solución limpia, pero al menos funciona bien.


En win7-x64, crear aplicaciones en el cedro de heroku y configurar pik (rvm-alternative) para usar ruby ​​1.9.2 funcionó. En pocas palabras, lo que hice:

  • creó una nueva aplicación heroku en la pila de cedro (ejecutando ruby-1.9.2)

    heroku create -s cedar

  • pik instalado (rvm-alternative), luego siguió las instrucciones posteriores a la instalación

    gem install pik

  • Ruby-1.9.2p290 instalado, se agregó <RUBY192_INSTALL_DIR>/bin a $env:PATH

  • instalado DevKit a ruby-1.9.2

  • aseguró que todas las gemas necesarias estén instaladas en ambas versiones ruby, 1.9.3 y 1.9.2

    pik gem install <gem-1> <gem-2> ... <gem-n>

  • gemas de db especificadas para entornos de producción, desarrollo y prueba en Gemfile

    # Development + Test: group :development, :test do gem ''pg'', :platforms => :mingw end # Heroku: group :production do gem ''thin'' gem ''pg'' end

  • elimina los refs de plataforma a mingw32 en Gemfile.lock después

    bundle install

  • agregó nuevas ediciones en Gemfile y Gemfile.lock (generado) para el repositorio

    git add . git commit -am "rebuilt Gemfile for Heroku" git push heroku master

  • rastrearon los modelos de datos, elevaron los datos locales

    heroku run rake db:migrate heroku db:push heroku open

  • luego volvió a ruby-1.9.3

    pik use 193


Finalmente conseguí que esto funcionara con la ayuda de la respuesta de Dosha https://github.com/ricardochimal/taps/issues/92#issuecomment-11996909 . (Y gracias a hernanvicente arriba por la propina).

Asegúrate de que tu versión de ruby ​​coincida con la versión que se ejecuta en Heroku. Parece que 1.9.2 es la versión más estable para estas migraciones.

Cambie su gemfile para tener lo siguiente (suponiendo que esté usando SQLite):

group :development do gem ''taps'', :require => false gem ''sqlite3'' end

Es probable que esto aún no resuelva su problema porque su heroku db:push está utilizando la barra de herramientas de Heroku en lugar de la antigua gema de heroku, que ahora está en desuso. Desafortunadamente, en realidad queremos la gema más antigua, pero la barra de herramientas Heroku está siendo llamada por heroku . Para evitar esto, necesitarás instalar la gema heroku en tu versión de ruby ​​1.9.2 y luego acceder a ella por su ruta de archivo específica.

Entonces, los próximos pasos muestran cómo puedes hacer que esto funcione:

Ejecute los siguientes comandos en su consola:

rvm install ruby-1.9.2-p320 rvm use ruby-1.9.2-p320 bundle install` sudo gem install heroku --no-ri --no-rdoc

Entonces corre:

rake assets:clean bundle exec rake assets:precompile

Confirma tus cambios a Github.

Luego ingrese lo siguiente en su consola:

~/.rvm/gems/ruby-1.9.2-p320/gems/heroku-2.40.0/bin/heroku db:push (utilice su propio archivo, si es diferente de este).


Intente utilizar los grifos nativos sin heroku db: push.

toca el servidor POSTGRES_DATABASE_REMOTE_URL pase de inicio de sesión

grifos push sqlite: //db/development.sqlite3 login: pass @ localhost: 5000

resuelto el problema para mí


La degradación a Ruby 1.9.2 de Ruby 1.9.3 no me parece una opción atractiva.

La página de devokre de Heroku en realidad sugiere usar el complemento pgbackups para administrar las bases de datos ( https://devcenter.heroku.com/articles/pgbackups ). Puede parecer que es solo para llevar copias de seguridad de las bases de datos de producción a su máquina local, pero si lo lee cuidadosamente, tienen una sección grande que trata sobre "importar una base de datos". Lo que sugieren es que suba su base de datos a una ubicación accesible públicamente y ejecute el comando sugerido

heroku pgbackups:restore DATABASE ''http://s3.amazonaws.com/.....mydb.dump?authparameters''

Así que, en efecto, proporcionan comandos para volcar su base de datos local, sugieren formas de cargarlo en una ubicación de la que los servidores de heroku pueden recuperar el volcado de la base de datos (suponiendo que su máquina de desarrollo local no es públicamente accesible desde Internet) y luego el comando anterior para debe cargarse en el entorno de producción en heroku.

Solo pongo esto aquí, ya que creo que el problema ha persistido durante mucho tiempo sin una resolución adecuada sobre el problema real.



No funcionó para mí, ya sea usando 1.9.3 o 1.9.2.

Como señaló Pablo, el problema tiene que ver con la clasificación de las fechas (la clasificación convierte la fecha a 12: 00: 00 + XXXX "a pesar de que mi tipo de fecha era ''marca de tiempo sin zona horaria'').

De todos modos, lo solucioné ajustando las fechas a nulo, para poder empujar con éxito a Heroku. Muy pobre solución, sin embargo. Espero que el error se resuelva pronto.


Solo cambiar la versión de ruby ​​no me ha funcionado. En cambio, reduje el problema al nuevo Heroku Toolbelt.

Cuando uso la gema heroku más vieja, puedo DB: empujar bien. Hasta que heroku lo solucione, he creado un nuevo gemset e instalado la gema heroku. Solo cambio a este gemset cada vez que necesito hacer un db: push.


Usar Ruby 1.9.2-p290 en lugar de 1.9.3-p0 lo arregló para mí. Según Roger Braun , esta es la razón:

El problema es (creo), que el marshalling cambió entre Ruby 1.9.2 y 1.9.3, por lo que este no es realmente un error de taps. Simplemente use cualquier versión que heroku ejecute para empujar y extraer bases de datos (Probablemente 1.9.2).