Laravel Migration для изменения имени таблицы

Я хочу изменить имя моей таблицы в Laravel, поэтому мне нужно вручную изменить имя таблицы, или это возможно с помощью миграции.

Ответы

Ответ 1

Чтобы изменить имя таблицы, вы можете сделать это:

Schema::rename($currentTableName, $newTableName);

Вы можете использовать методы drop или dropIfExists, чтобы удалить существующую таблицу:

Schema::drop('users');

Schema::dropIfExists('users');

Просто добавьте это в миграцию, и она должна работать.

Ответ 2

Чтобы переименовать существующую таблицу базы данных, используйте метод переименования:

Schema::rename($from, $to);

Чтобы удалить существующую таблицу, вы можете использовать методы drop или dropIfExists:

Schema::drop('users');

Schema::dropIfExists('users');

Ответ 3

Вы можете переименовать таблицу следующим образом

Schema::rename('old_table', 'new_table');

НО будьте осторожны, если у вас есть foreign keys, indexes и unique-s.

Вы не сможете удалить их после переименования, например, thiat

Schema::table('new_table', function (Blueprint $table) {
   $table->dropForeign(['transaction_id']);
 });

потому что у них будут старые имена, а в этих именах есть имя таблицы.

Поэтому я рекомендую сначала удалить foreign keys и другие материалы

 Schema::table('old_table', function (Blueprint $table) {
    $table->dropForeign(['transaction_id']);
 });

 Schema::rename('old_table', 'new_table');

 Schema::table('new_table', function (Blueprint $table) {
    $table->foreign('transaction_id')->references('id')->on('transactions');
 });

Ответ 4

Во-первых, используйте команду CLI для создания миграции:

php artisan make:migration rename_table

Теперь в методе up нового класса миграции используйте метод rename, чтобы изменить имя таблицы:

Schema::rename('old_table_name', 'new_table_name');

Затем выполните команду миграции:

php artisan migrate

Ответ 5

Предупреждение: этот код удалит все данные в базе данных. Не используйте его, если вы уже используете производственные данные

Я попробовал что-то новое, и это сработало.

Изменить это:

Schema::create('past_name', function (Blueprint $table)

строка на странице миграции в это:

Schema::create('new_name', function (Blueprint $table)

В командной строке и в командной строке обновите миграцию следующим образом:

php artisan migrate:refresh

Надеюсь, это сработает.