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

Hap*_*per 11 php symfony doctrine-orm

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

$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
Run Code Online (Sandbox Code Playgroud)

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

Sam*_*Sam 27

另一种选择只是告诉Doctrine忽略该表.您可以使用此SO帖子中schema_filter描述的选项.

因此,如果调用了表sessions,请将以下内容添加到config.yml:

doctrine:
    dbal:
      # standard database config here
      schema_filter: ~^(?!sessions)~
Run Code Online (Sandbox Code Playgroud)

我们有大量的表要忽略,所以我们采取了相反的方法 - 我们告诉Doctrine只考虑以某个前缀开头的表,并设置监听器以确保我们所有的Doctrine管理的表都有一个前缀.为表前缀使用监听器的是记录http://docs.doctrine-project.org/en/latest/cookbook/sql-table-prefixes.html,有一个SO张贴关于它的Symfony的侧面这里.


小智 2

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

将会话表导入到您的实体中。即使您不通过它创建的接口使用它,它也将允许 Doctrine 跟踪这些表,以便它知道它们应该在那里。

请参阅: http ://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html