Sto provando a distribuire l'applicazione rails con capistrano, ma sto riscontrando qualche problema durante l'esecuzione delle mie migrazioni. Nel mio ambiente di sviluppo uso solo sqlite come database, ma sul mio server di produzione utilizzo MySQL.Esecuzione della migrazione sul server durante la distribuzione con capistrano
Il problema è che voglio che le migrazioni vengano eseguite dal mio server e non dalla mia macchina locale, dal momento che non sono in grado di collegarmi al mio database da una postazione remota.
Configurazione del mio server: Una casella debian che esegue ngnix, passenger, mysql e un repository git.
Qual è il modo più semplice per farlo?
aggiornamento:
Ecco il mio script deploy: (ho sostituito il mio dominio vero e proprio con example.com)
set :application, "example.com" set :domain, "example.com" set :scm, :git set :repository, "[email protected]:project.git" set :use_sudo, false set :deploy_to, "/var/www/example.com" role :web, domain role :app, domain role :db, "localhost", :primary => true after "deploy", "deploy:migrate"
Quando eseguo berretto Deploy, tutto funziona bene fino a quando si cerca per eseguire la migrazione. Ecco l'errore che sto ricevendo:
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)) connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)))
Questo è il motivo per cui ho bisogno di eseguire la migrazione da server e non dalla mia macchina locale.
Qualche idea?
Bene, il nome utente di distribuzione è lo stesso del mio nome utente locale. Inoltre, quando accedo ed eseguo la migrazione tramite ssh, funziona bene. – Pandafox
Hmm. In realtà l'errore che hai postato è su update_code. Posso controllare, la tua applicazione è in realtà chiamata example.com, hai fatto il cap deployment: setup e cap deploy: check dal tuo computer locale? esempio.com è solo qualcosa che hai messo per la privacy qui lo prendo? – mark
Heh, sì, ho sostituito il mio vero dominio con my example.com per la privacy. Il codice viene distribuito sul mio server bene, è solo che capistrano tenta di eseguire la migrazione sul mio computer locale e non sul server :) – Pandafox