5

Ho cercato di migrare il mio database su heroku, senza successo. Ho aggiunto altri utenti al mio database e quando provo ad accedere con l'indirizzo e-mail e la password della mia app heroku, ottengo un errore di email/password non valido, anche se questo funziona perfettamente sul mio server locale. NESSUN errore durante l'esecuzione di tutti i passaggi descritti di seguito.Le migrazioni del database in heroku non funzionano

Come suggerito in un precedente post, ho provato i seguenti:

  1. le modifiche apportate al codice locale
  2. Ran eventuali migrazioni LOCALMENTE - ho usato bundle exec rake db:migrate
  3. Aggiunto tutti i file modificati a Git git add -A
  4. Commit tutti i file aggiunti a git git commit -m "Adding features"
  5. spinto i cambiamenti di Heroku git push heroku master
  6. 012.351.641.061.
  7. Ran heroku run rake db:migrate

Dopo corro questo ottengo:

astelvida:~/workspace/sample_app (master) $ heroku run rake db:migrate 
Running rake db:migrate on ⬢ shrouded-ravine-80000... up, run.2794 
ActiveRecord::SchemaMigration Load (0.8ms) 
SELECT "schema_migrations".* FROM "schema_migrations" 
  1. Seguendo le migrazioni fanno heroku restart

Ho anche controllato i miei. file sqlite3 per verificare che i nuovi utenti esistano effettivamente nel database.

Inoltre ho provato questo: $ bundle exec rake db:migrate RAILS_ENV=production

Ho anche aggiornato il mio gemfile.lock.

mie gemme in dev & produzione:

group :development, :test do 
    gem 'sqlite3',  '1.3.9' 
    gem 'byebug',  '3.4.0' 
    gem 'web-console', '2.0.0.beta3' 
    gem 'spring',  '1.1.3' 
end 

group :production do 
    gem 'pg',    '0.17.1' 
    gem 'rails_12factor', '0.0.2' 
    gem 'puma',   '3.1.0' 
end 

Nota: corro bundle install --without produzione, tuttavia questo è il modo che ho sempre usato, e i dati di accesso funziona per alcuni dei utenti che ho creato in passato. Inoltre sto usando le rotaie 4.2.2.

+0

fornire il proprio 'database.yml' e Heroku collegarvi migrazioni –

risposta

1

Ok ... chiariamo qui.

Rake db: migrate non esegue la migrazione dei dati del database. Esegue tutte le migrazioni (creazioni di tabelle, aggiornamenti, ecc.) In modo che la struttura del database sia la stessa, tuttavia i dati non lo sono! È un nuovo database con la stessa struttura.

Quello che stai facendo è assicurarti che il tuo database PG abbia la stessa struttura del tuo database sqlite3 e lo fa. Ma se vuoi passare i dati da uno all'altro sarà difficile direi. Devi creare un file dump dal tuo database sqlite 3, cambiarlo in pg ed eseguirlo nella tua app heroku.

Ecco una domanda al riguardo.

Convert SQLITE SQL dump file to POSTGRESQL

Problemi correlati