问题
I've done something horribly wrong to my migration_versions, deleted the versions from the migrations folder now and I get this error when try to run anything to do with migrations. Could someone point me in the direction of where to start to fix this?
If I drop the database and then make:migration
, the migration_versions
table appears in the db. After that if I try to run
php bin/console doctrine:migrations:migrate
I get the error:
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
If I then drop that table from the db I can then run the php bin\console doctrine:migrations:migrate
fine. But when attempting to run any further make:migration
/doctrine:migrations:migrate
commands I get the same error as previous stating that the table migration_versions
exists.
回答1:
The same problem happened to me because of a schema_filter in my config. My doctrine.yaml file (Symfony 4) had the following:
doctrine:
dbal:
schema_filter: ~^(table_1|table_2|table_3)$~
I had to simply add "migration_versions" to the schema filter like so:
doctrine:
dbal:
schema_filter: ~^(migration_versions|table_1|table_2|table_3)$~
回答2:
I had a similar issue, where I only wanted to change a field name.
The same problem happend after changing the fieldname and try to migrate that with the two commands.
I fixed it with:
- I removed the database content and the migrations/Versionfiles.
- Did
bin/console make:migration
- And
bin/console doctrine:migrations:migrate
and it worked again.
来源:https://stackoverflow.com/questions/61262556/symfony-base-table-or-view-already-exists-1050-table-migration-versions-alre