開発中の Propel プロジェクトで初めて移行を使用しようとしています (したがって、15MB のデータを再挿入する必要はありません) が、いくつかの問題があります。スキーマを変更して実行しましpropel-gen diff
た。buildtime-conf.xml
ファイルが見つからないというエラーを最初に受け取りました。私はまだそれを作っていませんでした (必要がなかったので) が、構造はruntime-conf.xml
. にコピーruntime-conf.xml
しましたbuildtime-conf.xml
。そして、次のエラーが表示されます。
[propel-sql-diff] Reading databases structure...
[phingcall] Unable to find adapter for datasource [project].
Execution of target "sql-diff" failed for the following reason: /var/www/project/vendor/propel/propel1/generator/build-propel.xml:317:26: Execution of the target buildfile failed. Aborting.
[phing] /var/www/project/vendor/propel/propel1/generator/build-propel.xml:317:26: Execution of the target buildfile failed. Aborting.
私の実行時ファイルとビルド時ファイルは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<config>
<propel>
<datasources default="project">
<datasource id="project">
<adapter>pgsql</adapter>
<connection>
<dsn>pgsql:host=###.###.###.###;dbname=database</dsn>
<user>USER</user>
<password>PASS</password>
</connection>
</datasource>
</datasources>
</propel>
</config>
私のスキーマは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<database name="project" defaultIdMethod="native">
<table schema="accounts" name="accounts" phpName="Account" package="accounts">
<column />
</table>
</database>
buildtime-conf を に変更しようとしたところ<datasource id="testing">
、エラーが に変わりましたUnable to find adapter for datasource [testing]
。したがって、私が知る限り、エラーは実際の buildtime-conf ファイル (スキーマではない) にあります。Propel が PostgreSQL のアダプターを見つけられなかったのではないかと思ったので (ランタイム conf では問題なく動作しますが)、アダプターを に変更してみましたmysql
。同じアダプターが見つからないというエラーが発生しました。
私は完全に道に迷ってしまいました。
更新:そのため、例外がスローされ/Propel/runtime/lib/Propel.php
た行に移動して見つけることができました。Unable to find adapter
行を追加して変数を手動で定義しましたが、self::$configuration['datasources'][$name]['adapter'] = 'pgsql'
機能します。この変更をやり直さずに Propel を更新することはできないので、これは今のところ明らかに役に立ちません。私self::$configuration
はPropel.phpにダンプしましたがNULL
、それはなぜですか?