1

我正在尝试使用Phinx迁移将表从 db1 迁移到 db2,但是我在一个具有列类型的表时遇到了问题DOUBLE。我知道支持的类型有Phinx 列类型,但是可以指定FLOAT类型以进入DOUBLEdiff_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');
}

}

4

1 回答 1

2

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', [
    // ...
])
于 2019-03-14T11:51:54.200 回答