Próbuję wdrożyć moją aplikację szyn z capistrano, ale mam problemy z uruchomieniem moich migracji. W moim środowisku programistycznym po prostu używam sqlite jako mojej bazy danych, ale na moim serwerze produkcyjnym używam MySQL.Uruchamianie migracji na serwerze podczas wdrażania za pomocą capistrano
Problem polega na tym, że chcę, aby migracje były uruchamiane z mojego serwera, a nie z mojego komputera lokalnego, ponieważ nie jestem w stanie połączyć się z bazą danych ze zdalnej lokalizacji.
Ustawienia mojego serwera: Debian box z uruchomionym programem ngnix, pasażerem, mysql i repozytorium git.
Jaki jest najprostszy sposób to zrobić?
zmiana:
Oto mój skrypt Deploy: (wymieniłem mojego prawdziwego domenę z 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"
Kiedy biegnę cap wdrożenia, wszystko działa w porządku, dopóki nie próbuje uruchomić migrację. Oto błąd Dostaję:
** [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)))
Dlatego trzeba uruchomić migrację z serwera, a nie z mojego komputera lokalnego.
Wszelkie pomysły?
Cóż, nazwa użytkownika wdrożenia jest taka sama jak moja lokalna nazwa użytkownika. Ponadto po zalogowaniu się i uruchomieniu migracji przez ssh działa dobrze. – Pandafox
Hmm. W rzeczywistości wysłany przez ciebie błąd dotyczy kodu aktualizacji. Czy mogę po prostu sprawdzić, czy twoja aplikacja jest rzeczywiście nazywana example.com, czy zrobiłaś wdrożenie cap: setup i cap deploy: sprawdź na swoim lokalnym komputerze? example.com jest czymś, co kładziesz tutaj na prywatność. Biorę to? – mark
Heh, tak, zastąpiłem moją prawdziwą domenę moim example.com dla prywatności. Kod zostanie wdrożony na moim serwerze, w porządku, po prostu capistrano próbuje uruchomić migrację na moim lokalnym komputerze, a nie na serwerze :) – Pandafox