Можно ли изменить тип данных столбца с int на удвоение без потери данных при миграции Laravel - PullRequest
2 голосов
/ 04 марта 2020

Я пытаюсь изменить тип данных одного из столбцов. Моя миграция для создания таблицы:

public function up()
    {
        Schema::create('place_ratings', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger('places_id');
            $table->foreign('places_id')->references('id')->on('places');
            $table->integer('rating');
            $table->mediumText('comments');
            $table->timestamps();
        });
    }

Я хочу изменить тип таблицы данных рейтинга с integer на float. У меня уже есть некоторые данные в моей таблице, и я не хочу их терять. Итак, как я могу это сделать?

1 Ответ

2 голосов
/ 04 марта 2020

Вы можете изменить этот столбец, используя простую миграцию, дополнительную информацию см. В https://laravel.com/docs/5.8/migrations#modifying -колонках :

Сначала необходимо установить composer require doctrine/dbal, чтобы получить возможность сгенерируйте sql, который изменит эти столбцы.

Schema::table('place_ratings', function (Blueprint $table) {
    $table->decimal('rating', 16, 4)->change();
});

16 и 4 означают общую длину и десятичную точность, поэтому в этом случае он будет иметь числа в диапазоне 0.0000 (ничего до точки, от 4 до) до 000000000000.0000 (12 до точки, 4 после, итого 16).

Обязательно сначала запустите его локально, чтобы убедиться, что у вас нет нежелательных побочных эффектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...