我有两台服务器(本地服务器和一台生产服务器)。它们具有相同的设置。当我希望我的新代码投入生产时,我唯一更新的是 src 文件夹。所以当我推送版本时,这个文件夹是完全相同的。
在我的本地服务器上,我的实体/表中的新列可以工作,并且可以创建、更新等。但是在我的生产环境中,这个新专栏并没有被注意到,甚至没有被学说选择。
新列在我的数据库(生产和本地)中,在我的entity.php
文件中,在我的entity.orm.yml
文件中。
我做了app/console cache:clear
选项。开发和生产以及两台服务器上。
我做错了什么?
终于找到了解决方案。
因为我没有在本地服务器上使用元数据缓存,而是在我的生产服务器上使用元数据缓存,所以它保存了我的映射信息。这就是为什么教义不知道我有新专栏的原因。解决方案是使用以下方法清除元数据缓存:
php bin/console doctrine:cache:clear-metadata
之后,我运行php bin/console doctrine:schema:update --dump-sql
并得到了新列。