【问题标题】:Again Migrate a specific table laravel再次迁移特定表 laravel
【发布时间】:2019-04-09 10:38:21
【问题描述】:

我正在开发 laravel 应用程序。数据库表的微小变化会导致新的迁移。有什么方法可以只在 laravel 的表上重新迁移。

【问题讨论】:

标签: php laravel eloquent


【解决方案1】:

您可以使用以下命令重新迁移所有表。

文档:https://laravel.com/docs/5.7/migrations

php artisan migrate:refresh

【讨论】:

    【解决方案2】:

    只要看看你数据库中的迁移表,就会有一个迁移文件名和批号值的列表。

    假设你有以下结构,

    id-------------------------迁移-------- --------批次

    1----------2014_10_12_000000_create_users_table---------------- 1

    2----------2014_10_12_100000_create_password_resets_table-------1

    3---------2016_09_07_103432_create_tabel_roles-----------------1

    如果您只想回滚 2016_09_07_103432_create_tabel_roles 迁移,请将其迁移批处理值更改为 2,这是所有迁移中最高的,然后执行以下操作。

    php artisan migrate:rollback

    这里只有批值为 2 的表会被回滚。现在对该表进行更改并运行以下控制台命令。

    php 工匠迁移

    迁移表中的批处理值定义了迁移的顺序。当您回滚时,最新的或具有最高批次值的迁移将首先回滚,然后再回滚其他迁移。因此,您可以更改数据库中的值,然后回滚特定的迁移文件。

    虽然由于表结构的关系,每次都更改批号不是一个好主意,但我们可以在一些单表回滚不破坏表间完整性的情况下使用这种情况。

    希望你能理解。

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 2016-06-19
      • 2021-02-28
      • 2018-06-08
      • 2018-04-20
      • 2018-01-10
      • 2019-08-11
      • 2014-11-19
      • 2021-07-19
      相关资源
      最近更新 更多