開発中のPropelプロジェクトで初めてマイグレーションを使用しようとしています(したがって、15MBのデータを再挿入する必要はありません)。スキーマを変更してpropel-gen diff
を実行しました。最初に私のbuildtime-conf.xml
ファイルを見つけることができなかったというエラーを受けました。私はまだ(まだ必要ではなかったので)1つも作っていませんでしたが、その構造はruntime-conf.xml
と同じでなければならないことをお読みください。私はruntime-conf.xml
をbuildtime-conf.xml
にコピーしました。そして今、次のエラーが表示されますPropel PostgreSQLの移行アダプターを見つけることができません
[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のアダプタを見つけることができなかったかもしれないと思っていたので、私はアダプタをmysql
に変更しようとしました。アダプタエラーを見つけることができませんでした。
私は完全に迷っていますか?
更新:だから/Propel/runtime/lib/Propel.php
に入り、Unable to find adapter
例外がスローされた行を見つけることができました。私は手動で変数self::$configuration['datasources'][$name]['adapter'] = 'pgsql'
を追加して変数を定義しています。この変更をやり直さずにPropelを更新することはできないため、これは明らかに今のところ有効ではありません。私はself::$configuration
をPropel.phpに投げ捨てました。それはNULL
です。
実行しているバージョンは何ですか?それが1.6の場合、それはafaikをサポートしています - 私はバグを報告します。マイグレーションのものは接続を初期化していないようですが、内部のことはまったくわかりません。また、完全なschema.xmlとbuild.propertiesを解凍したい場合は、好きなだけ自分のマシンでマイグレーションを試みます(まだ試していませんが、それを回避する意味があります)。 – halfer