我在教义:迁移:迁移方面遇到了问题。几天前,我运行了一个名为“ 20190819021520”的版本,并且运行良好。数据库已更新,没有任何问题。今天,我正尝试进行另一次迁移,并且正尝试再次进行20190819021520,当然会引发错误,表明表列已存在。当然存在,20190819021520已经成功运行了。我该如何解决? migration_versions表甚至已经输入了20190819021520。有什么方法可以忽略/删除20190819021520迁移位置而无需尝试在mysql数据库上撤消?
这是我的输出:
php bin /控制台学说:migrations:migrate
Application Migrations
警告!您将要执行的数据库迁移可能 导致架构更改和数据丢失。您确定要 继续? (y / n)y从20190822165301迁移到20190822165848
++迁移20190819021520
-> ALTER TABLE job_contact CHANGE email email VARCHAR(255) DEFAULT NULL, CHANGE phone phone VARCHAR(255) DEFAULT NULL, CHANGE fax
传真VARCHAR(255)默认为空 -> ALTER TABLE job_location更改zip zip VARCHAR(15)默认为空,更改路由route VARCHAR(255)默认为NULL,更改 street_number street_number VARCHAR(255)默认为空 -> ALTER TABLE job_post更改job_location_id job_location_id INT默认值NULL,更改job_contact_id job_contact_id INT默认值 NULL,更改user_id user_id INT默认值NULL,更改专家 专家VARCHAR(255)默认为NULL,请更改board_cert board_cert VARCHAR(255)DEFAULT NULL,CHANGE Expirate_date expire_date DATETIME 默认为空,更改公司名称公司名称VARCHAR(255)默认 空值 -> ALTER TABLE用户添加company_name VARCHAR(255)默认为空,添加company_location JSON默认为空注释'(DC2Type:json_array)', 更改角色角色JSON DEFAULT NULL COMMENT'(DC2Type:json_array)' 执行期间迁移20190819021520失败。错误异常 执行'ALTER TABLE用户添加company_name时发生 VARCHAR(255)DEFAULT NULL,添加company_location JSON DEFAULT NULL COMMENT'(DC2Type:json_array)',更改角色,角色,JSON,默认为空 COMMENT'(DC2Type:json_array)'':
SQLSTATE [42S21]:列已存在:1060重复的列名 'company_name'
在AbstractMySQLDriver.php 65行中:
执行'ALTER TABLE用户ADD时发生异常 company_name VARCHAR(255)默认为NULL,添加company_location JSON DEFAULT NULL COMMENT'(DC2Type:json_array)',更改角色角色
JSON默认空注释'(DC2Type:json_array)'':SQLSTATE [42S21]:列已存在:1060重复的列名 'company_name'
在PDOConnection.php第90行中:
SQLSTATE [42S21]:列已存在:1060重复的列名 'company_name'
在PDOConnection.php第88行中:
SQLSTATE [42S21]:列已存在:1060重复的列名 'company_name'
以任何方式我都可以跳过20190819021520,因为它已经在几天前完成了?
答案 0 :(得分:1)
您应该尝试使用命令将其添加到migration_versions表中:
$ php bin/console doctrine:migrations:version 20190819021520 --add
https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html#skipping-migrations