Symfony 2:如何避免会话表被学说迁移删除?

问题描述 投票:11回答:3

我是迁移的新手,我正在努力坚持自动生成的迁移:

$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate

问题是这会丢弃我的会话表。我该怎么做才能避免这种情况?

php doctrine-orm symfony
3个回答
2
投票

我知道我迟到了这个问题,但我想我会提出一个建议。

将会话表导入您的实体。即使你不通过它创建的接口使用它,它也会允许Doctrine跟踪表格,这样它就知道它们是存在的。

见:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html


25
投票

另一种选择只是告诉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


0
投票

当你说“会话表”时,我猜你的意思是PdoSessionStorage的会话表? (只是为了确保我们谈论同样的事情:-))

我有一个类似的问题,唯一的持久(和非复杂)解决方案只是将您的会话放在另一个数据库中(并相应地更新配置)。但这需要创建额外数据库的权限。

如果你没有这种可能性,我会看一些其他的解决方案,但也许上面提到的一个适合你:-)

© www.soinside.com 2019 - 2024. All rights reserved.