【问题标题】:Laravel: Rename table field without deleting data during migrationLaravel:在迁移期间重命名表字段而不删除数据
【发布时间】:2020-03-14 04:45:36
【问题描述】:

我正在尝试将“名称”更改为“用户名”而不删除现有记录。

我尝试了所有这些,但它只是清除了表中的数据。

php artisan *
     migrate:fresh       Drop all tables and re-run all migrations
     migrate:install     Create the migration repository
     migrate:refresh     Reset and re-run all migrations
     migrate:reset       Rollback all database migrations
     migrate:rollback    Rollback the last database migration
     migrate:status      Show the status of each migration

【问题讨论】:

标签: php mysql sql laravel migration


【解决方案1】:

为此,您必须按照以下步骤操作!

1.安装 Doctrine/dbal

composer require doctrine/dbal

2。创建迁移文件以重命名列名

php artisan make:migration updateTableColumnName

3.添加以下代码以编辑您的列名

Schema::table('YourTableName', function (Blueprint $table) {
    $table->renameColumn('name', 'username');
});

然后运行您已完成的迁移,而不会丢失您的数据。

php artisan migrate

【讨论】:

  • 感谢您的及时回复。我做了你提到的步骤,我应该使用什么迁移命令?或者我下一步该怎么做?
  • 运行,php artisan migrate 命令。完成上述步骤后。并且您的列名将被更改。
【解决方案2】:

假设您有 'table_name' 表,并且想要将列 'old_column_name' 更改为 'new_column_name'

php artian make:migration rename_columns_to_table_name_table --table=table_name

然后,

Schema::table('table_name', function ($table) {
    $table->renameColumn('old_column_name', 'new_column_name');
});

运行迁移,

php artisan migrate

【讨论】:

    【解决方案3】:

    第 1 步 - php artisan make:migration rename_table
    第 2 步 - Schema::rename('old_table_name', 'new_table_name');
    第 3 步 - php artisan 迁移

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 2018-08-20
      • 2012-07-23
      • 1970-01-01
      • 2015-11-25
      • 2014-02-03
      • 2017-09-03
      • 2018-07-18
      • 2018-09-19
      相关资源
      最近更新 更多