2015-04-23 6 views
0

Hiho, Я хочу использовать Phing dbdeploy с DB постгерра. проблема в том, что я не могу подключиться к базе данных с помощью строки подключения, потому что не могу определить пароль. Есть ли у кого-нибудь решение? Ниже приводится 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

Вы можете создать password file для пользователя системы (пользователя, который будет выполнять скрипт Phing).

+0

Спасибо, thats работал для меня –

Смежные вопросы