我运行的是带有迁移插件和Postgresql数据库的CakePhp 2.7。创建一个类型为“number”的字段并指定长度为15,4(小数位数为15,精度为4 -或任意长度)实际上并不会创建具有该精度和/或小数位数的字段。
...
'license_fee' => array(
'type' => 'number',
'null' => true,
'length' => '15,6',
'default' => 0
),
...
创建的字段具有正确的类型(数字),但没有小数位数/精度。以下是所创建字段的Postgres描述。
license_fee | numeric | default 0
我想看到的是
license_fee | numeric(15,6) | default 0
我也试过使用'type' =〉'decimal',但同样的事情发生了。这可能不支持的迁移插件,但我只是想知道,如果有人知道肯定是怎么回事。
3条答案
按热度按时间cdmah0mi1#
在此找到:http://docs.phinx.org/en/latest/migrations.html
为了创建:十进制(9,3)
bhmjp9jg2#
经过进一步的调查和Cake Development Corp.的帮助,我们发现指定精度和小数位数的正确方法是使用“limit”,而不是像我尝试的那样使用“length”。因此,应该是这样的:
如果使用'type' =〉'decimal',这也是可以的,因为它实际上是相同的数据类型。
我希望这对某人有用。
zpqajqem3#
对于3.10版本:
在/vendor/cakephp/cakephp/src/Database/Schema/TableSchema. php中,是可以在列中使用的有效键: