2016-12-18 99 views
0

我在Heroku上運行Laravel項目。爲了運行將改變列類型的遷移,我需要安裝doctrine/dbal包。我把"doctrine/dbal": "^2.5"行放在composer.json中的"require"對象中。在Heroku中未安裝doctrine/dbal

當我將更改推送到Heroku時,它顯示了該行。

- Installing doctrine/dbal (v2.5.5) 
    Downloading: 100% 

之後,當我運行heroku run composer show doctrine/dbal它顯示。

[InvalidArgumentException] 
Package doctrine/dbal not found 

我也跑了heroku run composer update幾次之後。這裏是我的命令的完整日誌。

C:\xampp\htdocs\jem\red-arrow (master) ([email protected]) 
λ heroku run composer update 
Running composer update on red-arrow... up, run.9733 (Free) 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
- Removing symfony/polyfill-mbstring (v1.2.0) 
- Installing symfony/polyfill-mbstring (v1.3.0) 
    Downloading: 100% 

- Removing symfony/var-dumper (v3.1.4) 
- Installing symfony/var-dumper (v3.1.8) 
    Downloading: 100% 

- Removing symfony/translation (v3.1.4) 
- Installing symfony/translation (v3.1.8) 
    Downloading: 100% 

- Removing symfony/routing (v3.1.4) 
- Installing symfony/routing (v3.1.8) 
    Downloading: 100% 

- Removing symfony/process (v3.1.4) 
- Installing symfony/process (v3.1.8) 
    Downloading: 100% 

- Removing symfony/http-foundation (v3.1.4) 
- Installing symfony/http-foundation (v3.1.8) 
    Downloading: 100% 

- Removing symfony/event-dispatcher (v3.1.4) 
- Installing symfony/event-dispatcher (v3.2.1) 
    Downloading: 100% 

- Removing psr/log (1.0.0) 
- Installing psr/log (1.0.2) 
    Downloading: 100% 

- Removing symfony/debug (v3.1.4) 
- Installing symfony/debug (v3.1.8) 
    Downloading: 100% 

- Removing symfony/http-kernel (v3.1.4) 
- Installing symfony/http-kernel (v3.1.8) 
    Downloading: 100% 

- Removing symfony/finder (v3.1.4) 
- Installing symfony/finder (v3.1.8) 
    Downloading: 100% 

- Removing symfony/console (v3.1.4) 
- Installing symfony/console (v3.1.8) 
    Downloading: 100% 

- Removing swiftmailer/swiftmailer (v5.4.3) 
- Installing swiftmailer/swiftmailer (v5.4.4) 
    Downloading: 100% 

- Removing paragonie/random_compat (v2.0.2) 
- Installing paragonie/random_compat (v2.0.4) 
    Downloading: 100% 

- Removing ramsey/uuid (3.5.0) 
- Installing ramsey/uuid (3.5.2) 
    Downloading: 100% 

- Removing nikic/php-parser (v2.1.1) 
- Installing nikic/php-parser (v3.0.2) 
    Downloading: 100% 

- Removing psy/psysh (v0.7.2) 
- Installing psy/psysh (v0.8.0) 
    Downloading: 100% 

- Removing monolog/monolog (1.21.0) 
- Installing monolog/monolog (1.22.0) 
    Downloading: 100% 

- Removing league/flysystem (1.0.27) 
- Installing league/flysystem (1.0.32) 
    Downloading: 100% 

- Removing symfony/polyfill-util (v1.2.0) 
- Installing symfony/polyfill-util (v1.3.0) 
    Downloading: 100% 

- Removing symfony/polyfill-php56 (v1.2.0) 
- Installing symfony/polyfill-php56 (v1.3.0) 
    Downloading: 100% 

- Removing jeremeamia/superclosure (2.2.0) 
- Installing jeremeamia/superclosure (2.3.0) 
    Downloading: 100% 

- Removing classpreloader/classpreloader (3.0.0) 
- Installing classpreloader/classpreloader (3.1.0) 
    Downloading: 100% 

- Removing laravel/framework (v5.3.9) 
- Installing laravel/framework (v5.3.28) 
    Downloading: 100% 

- Installing doctrine/lexer (v1.0.1) 
    Downloading: 100% 

- Installing doctrine/collections (v1.3.0) 
    Downloading: 100% 

- Installing doctrine/cache (v1.6.1) 
    Downloading: 100% 

- Installing doctrine/annotations (v1.3.0) 
    Downloading: 100% 

- Installing doctrine/common (v2.6.2) 
    Downloading: 100% 

- Installing doctrine/dbal (v2.5.5) 
    Downloading: 100% 

- Installing fzaninotto/faker (v1.6.0) 
    Downloading: 100% 

- Installing hamcrest/hamcrest-php (v1.2.2) 
    Downloading: 100% 

- Installing mockery/mockery (0.9.6) 
    Downloading: 100% 

- Installing symfony/yaml (v3.2.1) 
    Downloading: 100% 

- Installing sebastian/version (2.0.1) 
    Downloading: 100% 

- Installing sebastian/resource-operations (1.0.0) 
    Downloading: 100% 

- Installing sebastian/recursion-context (2.0.0) 
    Downloading: 100% 

- Installing sebastian/object-enumerator (2.0.0) 
    Downloading: 100% 

- Installing sebastian/global-state (1.1.1) 
    Downloading: 100% 

- Installing sebastian/exporter (2.0.0) 
    Downloading: 100% 

- Installing sebastian/environment (2.0.0) 
    Downloading: 100% 

- Installing sebastian/diff (1.4.1) 
    Downloading: 100% 

- Installing sebastian/comparator (1.2.2) 
    Downloading: 100% 

- Installing doctrine/instantiator (1.0.5) 
    Downloading: 100% 

- Installing phpunit/php-text-template (1.2.1) 
    Downloading: 100% 

- Installing phpunit/phpunit-mock-objects (3.4.3) 
    Downloading: 100% 

- Installing phpunit/php-timer (1.0.8) 
    Downloading: 100% 

- Installing phpunit/php-file-iterator (1.4.2) 
    Downloading: 100% 

- Installing sebastian/code-unit-reverse-lookup (1.0.0) 
    Downloading: 100% 

- Installing phpunit/php-token-stream (1.4.9) 
    Downloading: 100% 

- Installing phpunit/php-code-coverage (4.0.3) 
    Downloading: 100% 

- Installing webmozart/assert (1.2.0) 
    Downloading: 100% 

- Installing phpdocumentor/reflection-common (1.0) 
    Downloading: 100% 

- Installing phpdocumentor/type-resolver (0.2.1) 
    Downloading: 100% 

- Installing phpdocumentor/reflection-docblock (3.1.1) 
    Downloading: 100% 

- Installing phpspec/prophecy (v1.6.2) 
    Downloading: 100% 

- Installing myclabs/deep-copy (1.5.5) 
    Downloading: 100% 

- Installing phpunit/phpunit (5.7.4) 
    Downloading: 100% 

- Installing symfony/css-selector (v3.1.8) 
    Downloading: 100% 

- Installing symfony/dom-crawler (v3.1.8) 
    Downloading: 100% 

sebastian/global-state suggests installing ext-uopz (*) 
phpunit/phpunit-mock-objects suggests installing ext-soap (*) 
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.4.0) 
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1) 
phpunit/phpunit suggests installing ext-xdebug (*) 
Writing lock file 
Generating autoload files 
> Illuminate\Foundation\ComposerScripts::postUpdate 
> php artisan optimize 
Generating optimized class loader 
The compiled class file has been removed. 

C:\xampp\htdocs\jem\red-arrow (master) ([email protected]) 
λ heroku run composer show doctrine/dbal 
Running composer show doctrine/dbal on red-arrow... up, run.6084 (Free) 


[InvalidArgumentException] 
Package doctrine/dbal not found 


show [--all] [-i|--installed] [-p|--platform] [-a|--available] [-s|--self] [-N|--name-only] [-P|--path] [-t|--tree] [-l|--latest] [-o|--outdated] [-D|--direct] [--] [<package>] [<version>] 

鏈接到混帳回購協議:https://github.com/Jimut/red-arrow

鏈接到Heroku的應用:http://red-arrow.herokuapp.com/

+0

不要打擾在Heroku上運行'composer update'。編譯好slug後對本地文件系統所做的任何更改[只要您的Dyno週期就會丟失](https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem)。 (在你的服務器上運行'composer update'也不是一個好主意,而是使用'composer install')。'heroku run composer show'生成你期望的輸出嗎?根據執行命令的位置,它可能根本找不到你本地的'vendor /'目錄(這是可以的)。唯一重要的是你的code_可以找到你的庫。 – Chris

+0

哦!我知道了。問題的發生是因爲我只是從''require-dev''將''doctrine/dbal':「^ 2.5」'剪切粘貼到''require''並且沒有更新鎖定文件。 Heroku在'git push'之後運行'composer install'而不是'composer update'。所以這個軟件包沒有安裝。 我應該寫一個答案還是隻刪除這個問題? – Jem

+0

這取決於你,但請考慮[回答你自己的問題,然後接受你的答案](https://stackoverflow.com/help/self-answer)。這樣,其他用戶可以從你找到的東西中受益。 – Chris

回答

0

那麼,問題是,composer.lock沒有更新之前,我推了回購協議的Heroku 。

Heroku僅在git push之後運行composer install,它讀取鎖定文件以安裝軟件包。正如Chris在評論中指出的那樣

不要打擾在Heroku上運行Composer更新。 Dyno週期後,您編譯段塞後對本地文件系統所做的任何更改都會丟失。

所以最好的做法是,在本地文件系統中編輯composer.json後始終運行composer update然後git push

我感動"doctrine/dbal": "^2.5""require-dev""require"和前推沒跑composer update,這是問題的原因。