Doh*_*ent 2 php mysql doctrine symfony
我对我的迁移版本做了一些可怕的错误,现在从迁移文件夹中删除了版本,当我尝试运行任何与迁移有关的东西时出现这个错误。有人能指出我从哪里开始解决这个问题的方向吗?
如果我删除数据库然后make:migration,该migration_versions表将出现在 db 中。之后,如果我尝试运行
php bin/console doctrine:migrations:migrate
Run Code Online (Sandbox Code Playgroud)
我收到错误:
In AbstractMySQLDriver.php line 38:
An exception occurred while executing 'CREATE TABLE migration_versions (version VARCHAR(14) NOT NULL, executed_at
DATETIME NOT NULL COMMENT '(DC2Type:datetime_immutable)', PRIMARY KEY(version)) DEFAULT CHARACTER SET utf8mb4 COLL
ATE `utf8mb4_unicode_ci` ENGINE = InnoDB':
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists
In PDOConnection.php line 43:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists
In PDOConnection.php line 41:
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migration_versions' already exists
Run Code Online (Sandbox Code Playgroud)
如果我然后从数据库中删除该表,则可以正常运行php bin\console doctrine:migrations:migrate。但是当尝试运行任何进一步的make:migration/doctrine:migrations:migrate命令时,我得到了与之前说明该表migration_versions存在相同的错误。
小智 5
由于我的配置中有 schema_filter,同样的问题发生在我身上。我的学说.yaml 文件(Symfony 4)有以下内容:
doctrine:
dbal:
schema_filter: ~^(table_1|table_2|table_3)$~
Run Code Online (Sandbox Code Playgroud)
我必须简单地将“migration_versions”添加到架构过滤器中,如下所示:
doctrine:
dbal:
schema_filter: ~^(migration_versions|table_1|table_2|table_3)$~
Run Code Online (Sandbox Code Playgroud)