Symfony 3 FosuserBundle更新打破了我的应用



我正在使用Symfony 3.0.9与FosuserBundle构建我的应用程序。我最近进行了作曲家更新,现在无法通过Usermanager或命令行创建用户。错误是Integrity constraint violation: 1048 Column 'salt' cannot be null。即使我在我的构造函数方法中明确调用parent :: __ construct(),如下所示:

,也会发生此错误
/**
 * constructor.
 */
public function __construct()
{
    parent::__construct();
}

,如果我调用setSalt方法(如 $user->setSalt('87234hjjdwshjdsjkds')

)也会失败

解决此问题的所有努力都失败了,因此我开始密切注意我的作曲家更新命令,这是一些输出:

Updating dependencies (including require-dev)
Removing twig/twig (v1.24.1)
Installing twig/twig (v1.28.2)
   Loading from cache
Removing symfony/polyfill-util (v1.2.0)
Installing symfony/polyfill-util (v1.3.0)
   Loading from cache
  
  ...
Removing symfony/polyfill-intl-icu (v1.2.0)
Installing symfony/polyfill-intl-icu (v1.3.0)
   Loading from cache
Removing psr/log (1.0.0)
Installing psr/log (1.0.2)
   Loading from cache
Removing doctrine/cache (v1.6.0)
Installing doctrine/cache (v1.6.1)
   Loading from cache
   ...
Removing doctrine/orm (v2.5.4)
Installing doctrine/orm (v2.5.5)
   Loading from cache
Removing sensiolabs/security-checker (v3.0.2)
Installing sensiolabs/security-checker (v4.0.0)
   Loading from cache
Removing nikic/php-parser (v2.1.0)
Installing nikic/php-parser (v2.1.1)
   Loading from cache
	...
Removing doctrine/doctrine-migrations-bundle (1.1.1)
Installing doctrine/doctrine-migrations-bundle (v1.2.0)
   Loading from cache
   
   ...
   
Removing phpspec/phpspec (2.5.1)
Installing phpspec/phpspec (2.5.5)
   Loading from cache
Removing doctrine/data-fixtures (v1.2.1)
Installing doctrine/data-fixtures (v1.2.2)
   Loading from cache
Updating friendsofsymfony/user-bundle dev-master (147ca68 => 7261f7a)
   Checking out 7261f7aa143b4bfdb0b7ddc5df208067fa7be698

您可以看到FosuserBundle已更新。

删除作曲家更新,删除我的供应商目录并运行Composer Install可以修复它。这将其总结到更新。那是问题。

如果有人知道我如何更新并且仍然有一个工作应用程序,我将感谢您的评论和反馈。

1)如果要在版本2中使用fosuserbundle,则没有最终/稳定版本 - 因此,您始终必须期望在开发/主人公上进行破坏。

2)由于几天有2.0.0 Beta版本,至少我建议在您的情况下使用它:在此处检查。

3)有关用户数据库架构的更改,例如,删除了几个未使用的字段。而且,关于盐领域有一个更改 - 因此,据我所知,可能缺少的事情是更新数据库SCHAME(如果您使用Doctrine,请致电bin/console doctrine:schema:update --force)。

有关详细信息,请参见例如2.0.0 beta的发行说明:

[BC中断]用户类的盐场现在无效。

如果要更新以外的所有内容

使用Composer,您可以将软件包名称作为参数传递给composer update命令,例如:

composer update vendor1/package1 vendor2/package2

因此,您可以创建除用户捆绑包以外的所有软件包的长字符串。您可以从

中获得的所有排出包的列表
composer show -o --name-only

命令输出。

选项-o这里仅适用于可用于更新的过时软件包。

选项--name-only显然仅显示无版本和描述的软件包名称。

所以,在类似于Unix的操作系统上,您可以运行

之类的东西
composer show -o --name-only | grep -v 'friendsofsymfony/user-bundle' | xargs composer update

更多关于作曲家CLI

相关内容

  • 没有找到相关文章

最新更新