Symfony:基表或视图已存在:1050 表“migration_versions”已存在

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

我对我的迁移版本做了一些可怕的错误,现在从迁移文件夹中删除了版本,当尝试运行与迁移有关的任何操作时,我收到此错误。有人可以指出我从哪里开始解决这个问题吗?

如果我删除数据库,然后

make:migration
,则
migration_versions
表会出现在数据库中。之后如果我尝试跑步

php bin/console doctrine:migrations:migrate

我收到错误:

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  

如果我从数据库中删除该表,我就可以正常运行

php bin\console doctrine:migrations:migrate
。但是,当尝试运行任何进一步的
make:migration
/
doctrine:migrations:migrate
命令时,我得到与之前相同的错误,指出表
migration_versions
存在。

php mysql symfony doctrine
3个回答
13
投票

由于我的配置中的 schema_filter,同样的问题也发生在我身上。我的doctrine.yaml 文件(Symfony 4)具有以下内容:

doctrine:
    dbal:
        schema_filter: ~^(table_1|table_2|table_3)$~

我必须简单地将“migration_versions”添加到架构过滤器中,如下所示:

doctrine:
    dbal:
        schema_filter: ~^(migration_versions|table_1|table_2|table_3)$~

更新(2023 年 1 月 20 日)

在 Doctrine Migrations Bundle 的最新版本中,默认迁移版本表名称已更改为 doctrine_migration_versions,因此请务必检查您的表名称。表名也可以在 config/packages/doctrine_migrations.yaml 文件中设置。


4
投票

我遇到了类似的问题,我只想更改字段名称。

更改字段名称并尝试使用两个命令迁移该字段后,发生了同样的问题。

我用以下方法修复了它:

  • 我删除了数据库内容和迁移/版本文件。
  • 做了
    bin/console make:migration
  • 还有
    bin/console doctrine:migrations:migrate

它又起作用了。


0
投票

看起来我也遇到了类似的问题,唯一对我有用的是:

打开

C:\xampp\mysql

重命名:

data
old-data
或其他任何内容

复制

backup
并重命名备份的复制文件夹
data

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