Symfony 4.3教义迁移问题

时间:2019-08-22 17:07:04

标签: php symfony doctrine-orm doctrine symfony4

我在教义:迁移:迁移方面遇到了问题。几天前,我运行了一个名为“ 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,因为它已经在几天前完成了?

1 个答案:

答案 0 :(得分:1)

您应该尝试使用命令将其添加到migration_versions表中:

$ php bin/console doctrine:migrations:version 20190819021520 --add

https://symfony.com/doc/master/bundles/DoctrineMigrationsBundle/index.html#skipping-migrations