Как перенести столбец типа DOUBLE с помощью кеинга phinx? - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь перенести таблицу из db1 в db2 с помощью Phinx миграций, но у меня проблема с одной таблицей, где у меня есть тип столбца DOUBLE. Я знаю, что поддерживаются типы Тип столбца Phinx , но можно указать FLOAT тип, чтобы получить DOUBLE в diff_migration? Я использую CakePHP версии 3.5.6.

Мой пример migration_diff

<?php
   use Migrations\AbstractMigration;

   class Diff003 extends AbstractMigration
{

public function up()
{

    $this->table('test_double')
        ->addColumn('double1', 'float', [ // here type DOUBLE is changing to  FLOAT
            'default' => null,
            'limit' => null,
            'null' => true,
        ])
        ->addColumn('double2', 'float', [
            'default' => null,
            'limit' => null,
            'null' => true,
        ])
        ->create();
}

public function down()
{

    $this->dropTable('test_double');
}

}

1 Ответ

1 голос
/ 14 марта 2019

Тип DOUBLE был недавно реализован и, вероятно, будет доступен в следующем выпуске Phinx (он был добавлен начиная с версии 0.10.7), см. https://github.com/cakephp/phinx/pull/1493.

До этого момента вы можете, например, использовать функцию пользовательского типа столбца :

->addColumn('double1', \Phinx\Util\Literal::from('DOUBLE'), [
    // ...
])

или добавить столбцы вручную с помощью необработанного SQL, например:

$this->execute('ALTER TABLE test_double ADD COLUMN double1 DOUBLE NULL');

или, если вы любите приключения, используйте основную ветку Phinx, пока не станет доступен стабильный выпуск:

composer require robmorgan/phinx:dev-master
->addColumn('double1', 'double', [
    // ...
])
...