유유-마이그레이션은 일반 SQL과 DB-API를 사용하여 데이터베이스 스키마 마이그레이션 유틸리티입니다.
요요 - 마이그레이션 기능은 무엇입니까?
데이터베이스 응용 프로그램이 발전함에 따라, 데이터베이스 스키마에 대한 변경은 종종 필요합니다. 이들은 일반적으로 (모든 SQL 또는 파이썬 스크립트가 요요 - 마이그레이션에 사용될 수 있지만) ALTER TABLE 문 / CREATE 포함 일회성 SQL 스크립트로 작성 할 수 있습니다.
유유 - 마이그레이션은 스크립트의 디렉토리를 읽고 필요에 따라 데이터베이스에 적용하기위한 명령 행 도구를 제공합니다.
데이터베이스 지원
PostgreSQL을, MySQL과 SQLite 데이터베이스가 지원됩니다.
용법
유유 - 마이그레이션은 일반적으로 명령 줄 스크립트로 호출됩니다.
예 :
디렉토리 마이그레이션에서 모든 마이그레이션을 읽고 PostgreSQL 데이터베이스에 적용 :
요요-마이그레이션은 ./migrations/ 포스트 그레스를 적용 : // 사용자 : 암호 @ localhost를 / 데이터베이스
롤백 마이그레이션 이전에 MySQL 데이터베이스에 적용 :
요요-마이그레이션 롤백 ./migrations/ MySQL은 : // 사용자 : 암호 @ localhost를 / 데이터베이스
다시 적용 (즉, 다시 적용 롤백) 위치 /home/sheila/important-data.db에서 SQLite는 데이터베이스로 마이그레이션 :
다시 적용 ./migrations/ SQLite는 요요-마이그레이션 : ////home/sheila/important-data.db을
기본적으로 요요-마이그레이션을 쉽게 적용하고 롤백 할 마이그레이션을 선택하고, 그것을 적용하기 전에 각 마이그레이션 파일을 입력하라는 메시지가, 대화 형 모드로 시작됩니다.
마이그레이션 디렉토리는 마이그레이션 일련의 스크립트를 포함해야합니다. 각 이주 스크립트는 일련의 단계를 포함하는 파일 파이썬 (평)이다. 각 단계는 이전 쿼리 (선택 사항) 롤백 쿼리를 구성해야합니다. 예를 들어 :
#
# 파일 : 마이그레이션 / 0001.create-foo.py
#
단계 (
& NBSP; "TABLE foo는 (아이디 INT, 바 VARCHAR (20), PRIMARY KEY (ID)를) 만들기"
& NBSP; "DROP 표 foo는"
)
(평 확장자가없는) 각 파일의 파일 이름은 각각의 마이그레이션에 대한 식별자로 사용됩니다. 마이그레이션은 파일 이름 순서로 적용됩니다, 그래서 (예를 들어 '20090115-xyz.py') 또는 다른 증가 번호와 날짜를 사용하여 파일 이름을 유용합니다.
요요-마이그레이션이 적용되어있는 마이그레이션 추적, 대상 데이터베이스, _yoyo_migration에서 테이블을 생성합니다.
단계도 적용 하나, 롤백, 또는 전부를해야하는 옵션 인수 ignore_errors를 취할 수있다. 테이블 foo는 이미 다른 수단에 의해 생성되었을 수 있습니다 위의 예에서, 우리는 ignore_errors를 추가 할 수 있다면 = 마이그레이션에 관계없이 계속 할 수 있도록 단계에 '적용'
#
# 파일 : 0001.create-foo.py
#
단계 (
& NBSP; "TABLE foo는 (아이디 INT, 바 VARCHAR (20), PRIMARY KEY (ID)를) 만들기"
& NBSP; "DROP 표 foo는"
& NBSP; ignore_errors은 = '적용'
)
단계는 또한 하나의 인수로 데이터베이스 연결을 파이썬 호출 객체가 될 수 있습니다. 예를 들어 :
#
# 파일 : 0002.update_keys.py
#
데프 do_step (CONN) :
& NBSP; 커서 = conn.cursor ()
& NBSP; cursor.execute (
& NBSP; "sysinfo가 삽입 속으로"
& NBSP; "(여기서 OSName, 호스트 이름, 릴리스, 버전, 아치)"
& NBSP; "VALUES (% s의 % s를 % s에 % s를 % s에 % s의)",
& NBSP; os.uname ()
& NBSP;)
단계 (do_step)
암호 보안
당신은 일반적으로 명령 행에서 데이터베이스 연결 문자열의 일부로 데이터베이스 사용자 이름과 암호를 지정합니다. 다중 사용자 시스템에서 다른 사용자가 프로세스 목록에서 데이터베이스 암호를 볼 수 있습니다.
-p 또는 --prompt 비밀번호 플래그는 연결 문자열에 지정된 암호를 무시하고, 암호 입력을 요구하도록 요요-마이그레이션됩니다. 이 암호는 시스템의 프로세스 목록을 통해 다른 사용자가 사용할 수 없습니다.
연결 문자열 캐싱
당신은 마이그레이션 디렉토리에 .yoyo - 마이그레이션라는 파일에 데이터베이스 연결 문자열을 캐시 할 경우 마이그레이션의 새로운 세트에 요요 - 마이그레이션 처음 실행하면 메시지가 표시됩니다.
같은 마이그레이션 세트에 후속 실행이 지정하는 데이터베이스 연결 문자열을하지 않아도이 캐시, 마이그레이션 디렉토리 지역이다.
이것은, 입력 저장 프로세스 목록에 데이터베이스 사용자 이름과 암호를 보여주는를 방지하고 실수가 이동 한 경우 명령 역사에서 이전 요요-이동 항목을 다시 실행하여 즉, (잘못된 데이터베이스에 요요가-마이그레이션 실행의 위험을 감소시킨다 다른 디렉토리).
당신이 사용하는이 캐시 파일을 원하지 않는 경우, 명령 줄 옵션으로 --no-캐시 매개 변수를 추가
이 릴리스의 새로운 기능 무엇 :.
이 잘못 관리에 대한 수정 4.2.3 릴리스
이 어떤 버전 4.2.1의 새로운 기능 : 중요한 파일을 생략 이전 릴리스에 대한
버그 수정.
이 버전 4.1.6의 새로운 기능 :
이 추가 된 창 지원 (피터 Shinners 덕분에)
이 버전 4.1.5의 새로운 기능 : -v 스위치 콘솔에 (앤드류 NELIS 덕분에) 가서 출력을 발생 있도록
이 로깅 처리기를 구성합니다.
``-v`` 명령 줄 스위치가 더 이상 인수를 대신 여러 번 지정할 수 있습니다 (즉,`사용`대신`의 -vvv`` 없다`-v3``). ``--verbosity``는 이전 동작을 유지합니다.
이 변경된 기본 마이그레이션 테이블 이름을 다시 '_yoyo_migration'에
버전 4.1.3의 새로운 기능
이 요구 사항 :
이 파이썬
댓글을 찾을 수 없습니다