0

Phing build.xmlで次のようなことをしたいと思います。

<if>
    <not>
        <dbexists dsn="mysql:host=${database.host}" username="${database.username}" password="${database.password}" database="${database.name}"/>
    </not>
    <then>
        <pdosqlexec url="mysql:host=${database.host}" userid="${database.username}" password="${database.password}">
            CREATE DATABASE ${database.name};
        </pdosqlexec>        
        <pdosqlexec url="mysql:host=${database.host};dbname=${database.name}" userid="${database.username}" password="${database.password}">
            <transaction src="create-database-schema.sql"/>
        </pdosqlexec>
    </then>
</if>

残念ながら、これが可能になる方法は考えられません。dbexistsタスクは明らかに存在せず、カスタム条件を作成することはできません

残っている唯一の可能性は、(PHP で) データベースの存在をチェックして「はい」または「いいえ」を返すカスタム タスクを作成することです。これはプロパティに割り当てられ、Phing 条件で使用できます。問題は、それが可能かどうかさえわからないことです。カスタム タスク内からのプロパティの割り当てに関するドキュメントには何も表示されず、Google も役に立ちません。

誰にもアイデアはありますか?

4

1 に答える 1

1

<trycatch>そのためにタスクを使用できるはずだと思います。

<trycatch property="error">
    <try>
        <pdosqlexec url="mysql:host=${host}" userid="${username}" password="${pw}">
            CREATE DATABASE ${database.name};
        </pdosqlexec>
    </try>
    <catch>
        <echo message="${error}" />
    </catch>
</trycatch>
于 2012-11-14T23:31:43.367 に答える