2015-04-23 67 views
0

Hiho, 我想用postgres數據庫使用Phing和dbdeploy。 問題是我無法使用連接字符串連接到數據庫,因爲我無法定義密碼。 有沒有人有這方面的解決方案? 以下是deply XML: ` phing dbdeploy with postgres

<!-- load the dbdeploy task --> 
    <taskdef name="dbdeploy" classname="phing.tasks.ext.dbdeploy.DbDeployTask" /> 

    <!-- these two filenames will contain the generated SQL to do the deploy and roll it back --> 
    <property name="build.dbdeploy.deployfile" value="scripts/deploy-${DSTAMP}${TSTAMP}.sql" /> 
    <property name="build.dbdeploy.undofile" value="scripts/undo-${DSTAMP}${TSTAMP}.sql" /> 

    <!-- generate the deployment scripts --> 
    <dbdeploy 
     url="pgsql:host=${db.host};dbname=${db.name}" 
     userid="${db.username}" 
     password="" 
     dir="${phing.dir}/sql" 
     outputfile="${build.dbdeploy.deployfile}" 
     undooutputfile="${build.dbdeploy.undofile}" /> 

    <!-- execute the SQL - Use psql command line to avoid trouble with large 
     files or many statements and PDO --> 
    <trycatch> 
     <try> 
      <exec 
       command="pqsql -h${db.host} -U${db.username} -p${db.port} -d${db.name} &lt; ${build.dbdeploy.deployfile} -W" 
       dir="${phing.dir}" 
       checkreturn="true" 
       output="${phing.dir}/cache/deploy-${DSTAMP}${TSTAMP}.log" 
       error="${phing.dir}/cache/deploy-error-${DSTAMP}${TSTAMP}.log" 
      /> 
      <echo msg="Datenbank erfolgreich ausgerollt"/> 
     </try> 
     <catch> 
      <echo msg="Fehler beim ausrollen der Datenbank, führe Rollback durch"/> 
      <exec 
       command="pgsql -h${db.host} -U${db.username} -p${db.port} -d${db.name} &lt; ${build.dbdeploy.undofile}" 
       dir="${phing.dir}" 
       checkreturn="true" 
      /> 
      <echo msg="Rollback erfolgreich"/> 
     </catch> 
    </trycatch> 



</target> 

<!-- ============================================ --> 
<!-- Target: writeFiles       --> 
<!-- ============================================ --> 
<target name="writeFiles" description="Write all properties in files"> 

<copy 
    file="${dir}config/autoload/local.php.dist" 
    tofile="${dir}config/autoload/local.php" 
    overwrite="true" 
> 
    <filterchain> 
     <replacetokens begintoken="@" endtoken="@"> 
      <token key="db.host" value="${db.host}"/> 
      <token key="db.username" value="${db.username}"/> 
      <token key="db.password" value="${db.password}"/> 
      <token key="db.name" value="${db.name}"/> 
      <token key="db.port" value="${db.port}"/> 
     </replacetokens> 
    </filterchain> 
</copy> 
<echo>local.php geschrieben.</echo> 
</target>` 

回答

1

您可以創建系統用戶(將執行phing腳本的用戶)一個password file

+0

謝謝,多數民衆贊成在我身上 –