Laravel мигрировать не удалось на "renameColumn" при запуске - PullRequest
0 голосов
/ 11 февраля 2020

У меня около 30+ файлов миграции.

Когда он попадает в миграцию, которая содержит переименование столбца:

Schema::table('table', function (Blueprint $table) {
 $table->renameColumn('old_field', 'new_field');
});

Это только ошибки, когда он попадает в эту миграцию (скажем, номер 15). Все остальные миграции выполняются просто отлично. Если я закомментирую это, то оно завершится, как и ожидалось.

Я запускаю php artisan migrate или php artisan migrate:fresh

Я получаю следующую ошибку:

 ErrorException  : The "name" column option is not supported, setting it is deprecated and will cause an error in Doctrine 3.0

  at /Volumes/Workspace/new-app-backend/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php:85
    81|                 @trigger_error(sprintf(
    82|                     'The "%s" column option is not supported,' .
    83|                     ' setting it is deprecated and will cause an error in Doctrine 3.0',
    84|                     $name
  > 85|                 ), E_USER_DEPRECATED);
    86| 
    87|                 continue;
    88|             }
    89|             $this->$method($value);

  Exception trace:

  1   trigger_error("The "name" column option is not supported, setting it is deprecated and will cause an error in Doctrine 3.0")
      /Volumes/Workspace/new-app-backend/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php:85

  2   Doctrine\DBAL\Schema\Column::setOptions()
      /Volumes/Workspace/new-app-backend/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php:67

php -v дает мне это:

PHP 7.3.14 (cli) (built: Jan 24 2020 03:04:31) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.9.2, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v7.3.14, Copyright (c) 1999-2018, by Zend Technologies

Mysql -v дает мне это:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 323
Server version: 5.7.29 Homebrew

Я использую «doctrine / dbal»: «~ 2.3»

Эта ошибка возникает только при запуске migrate на моем локальном компьютере. На моем docker -компонентном стеке и в блоке Vagrant завершается, как и ожидалось. Все версии одинаковы по всем направлениям. Почему это происходит только на моей маме c?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Обходной путь Я нашел его через inte rnet

Schema::table('table', function (Blueprint $table) {
    \DB::statement("ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name data_type;");
});

Надеюсь, это поможет.

Ссылки

  1. Не удалось переименовать столбец в миграции
  2. Переименовать столбец в MySQL
0 голосов
/ 11 февраля 2020

Кажется, что это решено в v2.7 [ошибка] Не пропускайте опции столбцов. # 3089 .

2.7 прерывает переименование столбцов в mysql 5.7 # 3091

Обновите версию пакета, используя composer update doctrine/dbal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...