Вставить новые столбцы после определенных в миграции CakePhp

Как я могу вставить новые столбцы после определенных столбцов в уже существующей таблице в CakePhp. Для базы я использую postgreSQL, поэтому я не могу использовать метод after внутри миграции. Есть ли еще какие-то способы решения моей проблемы?

я использовал такой код для миграции

    public function change(): void
    {
        $table = $this
            ->table('table');
        $table
            ->addColumn('name', 'string', [
                'default' => '',
                'null'    => false,
                'limit'   => 255,
                'after'   => 'lastname',
            ])
            ->addColumn('name_en', 'string', [
                'default' => '',
                'null'    => false,
                'limit'   => 255,
                'after'   => 'lastname',
            ])
            ->update();
    }

Ответы (1 шт):

Автор решения: Rabban Keyak

В PostgreSQL столбцы всегда добавляются в конец. Вы можете использовать на выбор один из вариантов:

  1. Отказаться от идеи добавлять столбец не в конец. Тем более что практического смысла в этом в общем то нет (за исключением случаев оптимизации места, съедаемого выравниванием, и переноса фиксированных полей ближе к началу, а действительно больших полей ближе к концу).
  2. Создать новую таблицу, указав при пересоздании "правильный" порядок, перенести данные из старой таблицы в новую, удалить старую таблицу.
  3. Вместо добавления столбца осуществить нормализацию: создать новую таблицу, в которую разместить столбец первичных ключей и новый столбец, связать новую таблицу со старой. Но это не всегда возможно (не всегда имеет смысл).
→ Ссылка