【发布时间】:2023-03-18 03:05:01
【问题描述】:
我似乎对 Symfony 和 Doctrine 有一点奇怪的问题,其中有一个可用迁移的积累,其中许多是重复的,有些旨在执行不再存在的表的查询。
我只想回滚或“删除”所有这些可用的迁移,以便我可以在新数据库上运行迁移,一切都将是我的代码中的样子。
下面是一个例子(这只是一个试运行):
++ migrating 20200103023439
-> CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled
TINYINT(1) NOT NULL, salt VARCHAR(255) DEFAULT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL,
roles LONGTEXT NOT NULL COMMENT '(DC2Type:array)', name VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D64992FC23A8 (username_canonical), UNIQUE INDEX UNIQ_8D93D649A0D96FBF (email_canonical), UNIQUE INDEX UNIQ_8
D93D649C05FB297 (confirmation_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE entry (id INT AUTO_INCREMENT NOT NULL, album VARCHAR(255) NOT NULL, artist VARCHAR(255) NOT NULL, tracklist LONGTEXT NOT NULL COMMENT '(DC2Type:array)', review LONGTEXT NOT NULL, image VARC
HAR(255) NOT NULL, timestamp DATETIME NOT NULL, author VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE task (id INT AUTO_INCREMENT NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE track (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
++ migrated (0s)
++ migrating 20200103023541
-> CREATE TABLE entry (id INT AUTO_INCREMENT NOT NULL, album VARCHAR(255) NOT NULL, artist VARCHAR(255) NOT NULL, tracklist LONGTEXT NOT NULL COMMENT '(DC2Type:array)', review LONGTEXT NOT NULL, image VARC
HAR(255) NOT NULL, timestamp DATETIME NOT NULL, author VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE task (id INT AUTO_INCREMENT NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE track (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
++ migrated (0s)
++ migrating 20200103023707
-> CREATE TABLE entry (id INT AUTO_INCREMENT NOT NULL, album VARCHAR(255) NOT NULL, artist VARCHAR(255) NOT NULL, tracklist LONGTEXT NOT NULL COMMENT '(DC2Type:array)', review LONGTEXT NOT NULL, image VARC
HAR(255) NOT NULL, timestamp DATETIME NOT NULL, author VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE tag (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE task (id INT AUTO_INCREMENT NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
-> CREATE TABLE track (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB
++ migrated (0s)
您可以看到它正在尝试多次创建多个表,当实际运行此迁移时,这当然会导致许多错误。
我一直在尝试向下迁移其中一些版本,但即使这些版本也会导致 SQLSTATE 错误:
php bin/控制台原则:迁移:执行 20200102235626 --down
任何帮助都将不胜感激,我已经为此思考了好几个小时了。
【问题讨论】:
标签: symfony doctrine migration