2012-09-19 47 views
0

我想在我的Symfony項目中使用Doctrine 2 Migrations。Symfony 2.0:調用未定義的方法Doctrine DBAL Configuration :: getFilterSchemaAssetsExpression()

爲此,我先放

[doctrine-migrations] 
    git=http://github.com/doctrine/migrations.git 

[DoctrineMigrationsBundle] 
    git=http://github.com/doctrine/DoctrineMigrationsBundle.git 
    target=/bundles/Symfony/Bundle/DoctrineMigrationsBundle 
    version=origin/2.0 

中日DEPS文件。

然後我更新供應商提供:

php bin/vendors install 

,並嘗試使用

php app/console doctrine:migrations:diff 

但我越來越有一個致命的錯誤:

PHP Fatal error: Call to undefined method Doctrine\DBAL\Configuration::getFilterSchemaAssetsExpression() in /home/milos/workspace/Symfony/vendor/doctrine-migrations/lib/Doctrine/DBAL/Migrations/Tools/Console/Command/DiffCommand.php on line 85 

Fatal error: Call to undefined method Doctrine\DBAL\Configuration::getFilterSchemaAssetsExpression() in /home/milos/workspace/Symfony/vendor/doctrine-migrations/lib/Doctrine/DBAL/Migrations/Tools/Console/Command/DiffCommand.php on line 85 
+0

你對deps文件有哪些版本的教義 - 普通,doctrine-dbal和doctrine? –

+0

doctrine-common:version = 2.1.4; doctrine-dbal:version = 2.1.7;學說:版本= 2.1.7;謝謝你的答案。 –

回答

1

好了,問題是該學說遷移正在調用一個只存在於學說2.2而不是學說2.1中的函數。這是前幾天剛剛推出的this commit

問題是,教條遷移沒有任何分支或標籤,所以你不能要求一個適合你的舊版本。

如果您使用symfony-2.0,很難升級到Doctrine 2.2。所以,我要做的就是現在手動刪除提交中引入的行,然後在doctrine-migrations github上解釋該狀態並要求修復(可能最好的想法是爲版本添加標記與學說2.1)

編輯兼容

此問題已修復,現在要歸功於@Milos打開的問題!你不應該再找這個問題了。

+0

謝謝卡洛斯。實際上,我使用的是Symfony 2.0.17,因爲我是新手,所以我正在學習如何使用symfony。在本教程中,他們使用的是php app/console doctrine:migrations:diff。我如何手動刪除這些行,並在哪裏?謝謝。 –

+0

他們在這裏:/home/milos/workspace/Symfony/vendor/doctrine-migrations/lib/Doctrine/DBAL/Migrations/Tools/Console/Command/DiffCommand.php,你可以看到在鏈接中刪除哪些行提交 –

+0

即使你只是爲了學習Symfony而做這個,請到migrations github並打開一個問題(這很容易做,而且是將來需要的一項技能),你會在做每個人誰可能會在未來找到這個問題的幫忙 –

相關問題