【问题标题】:Laravel Migration to change table nameLaravel 迁移更改表名
【发布时间】:2016-02-26 14:17:43
【问题描述】:

我想在Laravel中更改我的两个表名,所以我必须手动更改表名还是可以通过迁移来实现。

【问题讨论】:

标签: laravel laravel-5


【解决方案1】:

要更改表名,您可以这样做:

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

您可以使用dropdropIfExists 方法删除现有表:

Schema::drop('users');

Schema::dropIfExists('users');

只需将其添加到迁移中即可。

【讨论】:

  • 这还会重命名/更改控制器/模型吗?
  • > 这也会重命名/更改控制器/模型吗?没有。
【解决方案2】:

你可以这样重命名表格

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

但是如果您有foreign keysindexesunique-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');
 });

【讨论】:

  • 外键+1。我认为这同样适用于索引,因为它们也由 Laravel 自动命名(如果你不指定名称)。
  • 是的,索引将是我提到的“其他东西”。
【解决方案3】:

首先,使用 CLI 命令创建迁移:

php artisan make:migration rename_table

现在,在新迁移类的 up 方法中,使用 rename 方法更改表名:

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

接下来,执行迁移命令:

php artisan migrate

【讨论】:

    【解决方案4】:

    要重命名现有的数据库表,请使用 rename 方法:

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

    要删除现有表,您可以使用 drop 或 dropIfExists 方法:

    Schema::drop('users');
    
    Schema::dropIfExists('users');
    

    【讨论】:

      【解决方案5】:

      首先,在你的终端中运行这个来创建一个迁移文件来重命名一个表:

      php artisan make:migration rename_old_name_to_new_name_table
      

      那么在 up 方法中,你应该有这个:

      public function up()
      {
          Schema::rename('old_table_name', 'new_table_name');
      }
      

      然后在 down 方法中,你应该有这个,以防你想恢复以前所做的更改:

      public function down()
      {
          Schema::rename('new_table_name', 'old_table_name');
      }
      

      【讨论】:

        猜你喜欢
        • 2015-11-25
        • 2018-11-14
        • 2015-12-08
        • 1970-01-01
        • 2016-01-01
        • 2021-07-01
        • 2021-03-02
        • 1970-01-01
        • 2019-04-17
        相关资源
        最近更新 更多