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
Надеюсь, это сработает.