Symfony 2:如何避免会话表被学说迁移删除?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Symfony 2:如何避免会话表被学说迁移删除?相关的知识,希望对你有一定的参考价值。
我是迁移的新手,我正在努力坚持自动生成的迁移:
$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
问题是这会丢弃我的会话表。我该怎么做才能避免这种情况?
我知道我迟到了这个问题,但我想我会提出一个建议。
将会话表导入您的实体。即使你不通过它创建的接口使用它,它也会允许Doctrine跟踪表格,这样它就知道它们是存在的。
见:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html
另一种选择只是告诉Doctrine忽略该表。您可以使用schema_filter
中描述的this SO post选项。
因此,如果您的表名为sessions
,请将以下内容添加到config.yml(Symfony <4)或doctrine.yaml(Symfony> = 4):
doctrine:
dbal:
# standard database config here
schema_filter: ~^(?!sessions)~
我们有大量的表要忽略,所以我们采取了相反的方法 - 我们告诉Doctrine只考虑以某个前缀开头的表,并设置监听器以确保我们所有的Doctrine管理的表都有一个前缀。 http://docs.doctrine-project.org/en/latest/cookbook/sql-table-prefixes.html记录了对表前缀的监听器的使用,并且有关于它的Symfony方面的SO帖子here。
当你说“会话表”时,我猜你的意思是PdoSessionStorage的会话表? (只是为了确保我们谈论同样的事情:-))
我有一个类似的问题,唯一的持久(和非复杂)解决方案只是将您的会话放在另一个数据库中(并相应地更新配置)。但这需要创建额外数据库的权限。
如果你没有这种可能性,我会看一些其他的解决方案,但也许上面提到的一个适合你:-)
以上是关于Symfony 2:如何避免会话表被学说迁移删除?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony2,学说 2 中使用 @SqlResultSetMapping?