Laravel 迁移 - 重命名列时数据类型也会更改

Laravel Migration - Data type also changes when renaming column

我想使用迁移重命名数据库中的列,但是当我尝试时,数据类型也发生了变化。如何在不更改数据类型的情况下重命名列。

数据库中列的当前名称是 payment_amount_cash 类型为 double(10,2)

我试过了

$table->renameColumn('payment_amount_cash', 'payment_amount_full')->comment('Advanced payment')->default("0.00");

重命名列。然后在迁移之后,名称发生了变化,但数据类型也从 double(10,2) 更改为仅 double 因此,使默认值从 0.00 更改为 0.

重命名列的模式后,我还尝试更改数据类型。

$table->renameColumn('payment_amount_cash', 'payment_amount_full')->comment('Advanced payment')->default("0.00");
$table->double('payment_amount_full', 10,2)->change();

但是这个在迁移时给我错误。

 Doctrine\DBAL\DBALException  : Unknown column type "double" requested.
 Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). 
You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). 
If this error occurs during database introspection then you might have forgotten to register all database types for a Doctrine Type. 
Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMappedDatabaseTypes(). 
If the type name is empty you might have a problem with the cache or forgot some mapping information.

有了这个,我只想知道如何在不影响数据类型的情况下重命名列。迁移后,我想保留刚改名的列的数据类型。

我了解到 Schema 中存在一个关于枚举的问题,直到现在仍在讨论中。 我只是用另一种方法来更新列的数据类型。

DB::statement('ALTER TABLE reservations MODIFY COLUMN payment_amount_full double(10,2)');

这对我有用。如果还有其他方法可以做到这一点,请告诉我。谢谢