Как в миграции в Yii2 указать преобразование данных в тип double precision с помощью square?

Как я могу корректно указать конструкцию "USING square::double precision" в данном методе миграции для изменения типа столбца с character на double precision?
  • 11 июля 2024 г. 9:12
Ответы на вопрос 2
Для указания преобразования данных в тип double precision с помощью square в миграции в Yii2, вы можете использовать метод execute() с SQL запросом.

Пример:

```php
class m200101_120000_change_column_type extends \yii\db\Migration
{
    public function safeUp()
    {
        $this->execute('ALTER TABLE {{%table_name}} ALTER COLUMN column_name TYPE double precision USING column_name::square::double precision');
    }

    public function safeDown()
    {
        $this->execute('ALTER TABLE {{%table_name}} ALTER COLUMN column_name TYPE character varying');
    }
}
```

Замените `table_name` на имя вашей таблицы и `column_name` на имя столбца, который вы хотите изменить.
Примерно так: 
public function safeUp()
{
    $this->execute(sprintf(
        "ALTER TABLE %s ALTER COLUMN square TYPE float USING square::double",
        $this->scheme_table
    ));
}
Похожие вопросы