phing 및 dbdeploy를 사용하여 mysql 데이터베이스의 deployment-files를 생성하고 있습니다.dbdeploy 오류 (배포 파일에서 - //)
다음과 같은 외모를 생성하는 dbdeploy 파일의 출력 :
-- Fragment begins: 8 --
INSERT INTO changelog
(change_number, delta_set, start_dt, applied_by, description) VALUES (8, 'Main', NOW(), 'dbdeploy', '8-add_tracking_code.sql');
--//
ALTER TABLE `order` ADD `tracking_code` VARCHAR(255) NOT NULL;
UPDATE changelog
SET complete_dt = NOW()
WHERE change_number = 8
AND delta_set = 'Main';
-- Fragment ends: 8 --
문제가있다 - // ALTER 문 전에. 데이터베이스에 오류가 발생했습니다. 내가 -// 구멍 파일을 제거하면 올바른 ist.
<target name="dbdeploy-migrate-all">
<!-- load the dbdeploy task -->
<taskdef name="dbdeploy" classname="phing.tasks.ext.dbdeploy.DbDeployTask"/>
<echo message="Loading deltas from ${build.dbdeploy.alters_dir}" />
<property name="build.dbdeploy.deployfile" value="${build.dbdeploy.deploy_dir}/deploy-${DSTAMP}${TSTAMP}.sql" />
<property name="build.dbdeploy.undofile" value="${build.dbdeploy.undo_dir}/undo-${DSTAMP}${TSTAMP}.sql" />
<!-- generate the deployment scripts -->
<dbdeploy
url="mysql:host=${db.host};dbname=${db.name}"
userid="${db.user}"
password="${db.pass}"
dir="${build.dbdeploy.alters_dir}"
outputfile="${build.dbdeploy.deployfile}"
undooutputfile="${build.dbdeploy.undofile}" />
<!-- execute the SQL - Use mysql command line to avoid trouble with large files or many statements and PDO -->
<property name="mysql.command" value="${progs.mysql} -h${db.host} -u${db.user} -p${db.pass} ${db.name} < ${build.dbdeploy.deployfile}" />
<echo message="Executing command: ${mysql.command}" />
<exec
command="${mysql.command}"
dir="${base.path}"
checkreturn="true" />
</target>
왜 손상된 파일을 생성 dbdeploy 않습니다 당신이 어떻게 dbdeploy와 .SQL 파일을 생성하고 볼 수 있도록 여기에
내 phing 빌드 스크립트의 조각인가?귀하의 도움을 요청하십시오!
이 덤프는 어디에서 가져 왔습니까? 너는 어떻게 그것을 재연하고 있니? – tadman
덤프는 dbdeploy에서 발생합니다 ... .sql-File을 생성하는 방법을 볼 수 있도록 질문을 업데이트했습니다 –
어떻게 재연하고 있습니까? MySQL은'mysqldump' 백업에서'/ * ... * /'주석 스타일을 사용하지만'--'는 여전히 작동해야합니다. – tadman