我对数据库迁移比较新,我试图坚持使用自动生成的迁移:
$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
问题在于这会删除我的sessions表。有什么方法可以避免这种情况?
我对数据库迁移比较新,我试图坚持使用自动生成的迁移:
$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
问题在于这会删除我的sessions表。有什么方法可以避免这种情况?
schema_filter
选项。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贴子,链接在这里。当你说“sessions table”时,我猜你是指PdoSessionStorage的sessions表吧?(只是为了确保我们谈论的是同一件事情 :-) )
我曾经遇到过类似的问题,唯一持久且不复杂的解决方案就是将你的sessions放在另一个数据库中(并相应地更新配置)。但这需要创建一个额外的数据库的权限。
如果你没有这个可能性,我会寻找其他的解决方案,但也许上述提到的方法适用于你 :-)