0

다른 문서를 훑어 보았습니다. 나는 미래 프로젝트를 위해 fluentmigrator를 사용하고 있지만, 스테이징/프로덕션 프랙티스는 dba를 통해 스키마 업데이트를해야한다. 나는 testing, dev, local 같은 다른 환경에서 내가 원하는 것을 할 수있다.db를 자동으로 업데이트하는 대신 생산 환경을 위해 유창한 n-hibernate를 사용하여 sql 스크립트를 생성하십시오

어쨌든 변경을 수행하기 위해 스크립트를 작성해야하는 경우 도구의 목적이 완전히 무효화됩니다. 그러나, 그것은 나에게 발생했다, 내가하지 않으면 어떡하지? 그래서 제 질문은 이것입니다 : 유창한 마이 그 레이션을 실제로 트랜잭션을 실행하는 대신 SQL 스크립트에서 파일로 뱉어 낼 수 있습니까?

내 실험에서 메인 프로젝트와 동일한 DAL 어셈블리를 사용하는 콘솔 응용 프로그램을 만들었고 콘솔 응용 프로그램을 실행할 때마다 가장 가까운 지점 또는 처음부터 db를 업데이트 할 수 있도록 마이 그레이터 논리를 활용했습니다 내 선택에 따라. 우리는 TeamCity를 사용하므로 스키마를 업데이트하는 환경에서 DBA를위한 빌드 프로세스의 단계로서 폴더에 응용 프로그램을 실행하고 스크립트를 (아티팩트로) 배치하는 것이 멋지다 고 생각했습니다. 직접 스키마를 업데이트해야합니다.

답변

1

FluentMigrator Command Line Runner 당신이 사용하는 경우, 데이터베이스에 변경 사항을 적용하지 않고, SQL 스크립트를 생성합니다 FluentMigrator package 외에도 FluentMigrator.Tools package을 사용하면 명령 줄 러너에 액세스 할 수 있습니다. 마이그레이션 프로젝트의 빌드 출력 디렉토리 (Migrate.exe).

참고 : 생성 된 스크립트에는 FluentMigrator 버전 표에 삽입되는 내용이 포함됩니다.

0

Command Line Runner Options을 읽은 후 SQL 스크립트를 출력하려면 --verbose = true를, 파일에 저장하려면 --output을 사용합니다. 그러나 '마른 실행'옵션이없는 것 같습니다. 스크립트를 얻으려면 일부 사전 작업 환경에서 마이그레이션을 실행해야합니다.

내가 한 번도 시도한 적이없는 것처럼 한 발을 내놔. 당신이 설치하는 경우,

  • --preview=true
  • --output=true
  • --outputFilename=output1.sql

을 그리고 :