【问题标题】:Okay to amend migrations after migrate:reset?可以在 migrate:reset 之后修改迁移吗?
【发布时间】:2021-10-09 14:16:05
【问题描述】:

我有一个网站正在开发中,因此数据库结构仍在不断变化。如果我运行migrate:reset,这将回滚所有迁移。因此,我是否可以修改迁移 - 即修改 Schema 闭包并删除迁移文件等 - 而不是添加更多迁移来修改数据库结构?例如,客户要求某些功能需要一个表,后来决定他不想要它,所以我的迁移中有一个我永远不会使用的表。理想情况下,我不希望它出现在我的迁移中。

【问题讨论】:

    标签: laravel laravel-migrations


    【解决方案1】:

    如果您的项目中不再需要表,当然您可以删除它的迁移文件。

    当你运行 php artisan migrate:reset 时,Laravel 会回滚所有迁移。但是如果你删除你的迁移文件而不回滚它,Laravel 会尝试找到那个迁移文件来回滚它,当它找不到那个文件时;它会抛出异常。

    在这种情况下,您可以使用php artisan migrate:fresh 使用migrate:fresh Laravel 不会尝试查找和回滚迁移,它只是删除所有表并启动一个新的migrations 表并从头开始迁移每个文件。

    所以;如果您对迁移文件有任何更改,并且如果您在开发环境中并且没有任何影响:您可以对迁移文件做任何您想做的事情并运行 php artisan migrate:fresh 以删除每个表并再次迁移它们。

    请在此处查看:https://laravel.com/docs/8.x/migrations#rolling-back-migrations

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2017-12-14
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2013-05-20
      • 2018-08-28
      • 2010-11-02
      • 2023-04-02
      相关资源
      最近更新 更多