capistrano를 사용하여 레일 응용 프로그램을 배포하려고하지만 마이그레이션을 실행하는 데 문제가 있습니다. 내 개발 환경에서 난 그냥 내 데이터베이스로 sqlite를 사용하지만 내 프로덕션 서버에서 MySQL을 사용합니다.capistrano를 사용하여 배포 할 때 서버에서 마이그레이션 실행
문제는 원격 위치에서 내 데이터베이스에 연결할 수 없기 때문에 마이 그 레이션을 내 서버가 아닌 내 로컬 컴퓨터에서 실행해야한다는 것입니다.
내 서버 설정 : ngnix, passenger, mysql 및 git 저장소를 실행하는 데비안 상자.
가장 쉬운 방법은 무엇입니까?
업데이트 : 은 (내가 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"
나는 캡 배포를 실행하면이 시도 될 때까지, 모든 것이 잘 작동 :
가 여기 내 배포 스크립트입니다 마이그레이션을 실행합니다. 여기에 내가지고있어 오류가있다 : 나는 내 로컬 컴퓨터에서 서버에서 마이그레이션을 실행하는 데 필요하지 왜
** [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)))
이다.
아이디어가 있으십니까?
글쎄, 배포 사용자 이름은 내 로컬 사용자 이름과 같습니다. 또한 로그인하고 ssh를 통해 마이그레이션을 실행하면 정상적으로 작동합니다. – Pandafox
흠. 실제로 게시 한 오류는 update_code에 있습니다. 내가 확인한 것인가, 응용 프로그램이 실제로 example.com이라고 불렀는지, 배포를 마쳤습니까? 설치 및 캡 전개 : 로컬 컴퓨터에서 확인 하시겠습니까? example.com은 개인 정보 보호를 위해 여기에 넣은 것입니다. – mark
ㅎ, 예, 내 실제 도메인을 privacy.com의 example.com으로 대체했습니다. 코드가 내 서버에 배치되면 잘됩니다. 단지 capistrano가 서버가 아닌 내 로컬 시스템에서 마이그레이션을 실행하려고합니다. – Pandafox