2009-11-11 2 views
0

저는 프리랜서 웹 개발자로 일하며, 지금까지는 내 스크립트/데이터베이스/정적 파일을 수동으로 웹 서버에 ftping했습니다. 오류가 발생하기 쉽습니다. 그래서 나는 새롭고 업데이트 된 스크립트/파일/데이터베이스/등을 업로드하는 것을 자동화하기위한 앱을 찾고 있습니다. 많은 독립적 인 개발자가 WinSCP 나 Unison을 사용한다는 것을 알고 있습니다.하지만 그 앱이 데이터베이스를 동기화 할 수 있다고 생각하지 않습니다.dev 시스템에서 웹 서버로 스크립트/db/files 동기화하기

다른 제안 사항이 있습니까? 팀 내에서 또는 여러 운영 체제 또는 그와 비슷한 작업을하지 않아서 풍부한 기능이 풍부 할 필요는 없습니다. 필요한 경우 합리적으로 가격이 책정 된 라이센스를 구매할 수 있습니다. 내 작업은 주로 Windows 시스템의 PHP/MySQL/Apache 용이며 Linux/Apache 서버에 업로드됩니다.

감사합니다.

답변

0

rsync과 같은 것을 사용할 수 있습니다. 어떤 것도 동기화되며 SSH 연결을 통해 작동합니다. 그러나 응용 프로그램과 데이터를 분리하고 다른 방법을 사용하는 것이 좋습니다. 아마도 컴퓨터에서 개발한다면 로컬 테스트를 실행하고 로컬 데이터는 일반적으로 웹 사이트로 이동하지 않아야합니다. 이 경우 로컬에서 SVN과 같은 것을 실행 한 다음 웹 서버에서 SVN 클라이언트를 사용하여 업데이트를 푸시하는 경우 데이터에 영향을주지 않고 응용 프로그램을 동기화 할 수 있습니다.

물론 필요할 때 rsync를 사용하여 모든 사이트 (예 : 새 사이트)를 업로드 할 수 있습니다.

본질적으로 rsync는 전송이 중단 될 때마다 원활하게 다시 시작할 수 있습니다. 이는 원본과 대상을 항상 비교 한 다음 대상을 원본과 동일하게 만드는 데 필요한만큼의 데이터 만 전송하기 때문입니다. 즉, 대부분의 전송은 FTP를 사용하는 것보다 훨씬 빠르게 수행됩니다.

웹 응용 프로그램의 특성상 데이터베이스를 정기적으로 업데이트해야하는 경우 개정 관리 시스템이 실제로 소스 코드 파일에서만 제대로 작동하기 때문에 SVN을 사용해 보려고하지 마십시오. 또한 rsync를 사용하여 업데이트를 보내면 rsync가 성공적으로 완료 될 때까지 데이터베이스가 실제로 손상된 상태이므로 데이터베이스가 활성 상태가 아닌지 확인해야합니다. 웹 서버의 준비 폴더로 항상 업데이트 한 다음 데이터베이스를 종료 할 때 프로덕션으로 옮길 경우 가장 잘 작동합니다.

0

바라건대 SVN이나 Mercurial 같은 버전 제어 시스템을 사용하고 있기를 바랍니다. 그런 다음 모든 개발자가 동일한 리포지토리에서 작업하고 전체 기록을 갖게되며 대부분의 병합은 자동으로 수행됩니다.

버전 관리를 사용하지 않으면 엉덩이에 큰 고통이 있습니다! 실수로 서로의 작업을 쾅쾅 거리고 파일을 잃어 버렸고 변경된 것을 잊어 버리고 여러 파일을 여러 곳에 복사 할 수 있습니다. 버전 관리 시스템은 이러한 모든 문제를 처리하고 코드를 한 곳에서 집중적으로 가져와 밀어 넣습니다.

관련 문제