【问题标题】:Can't create migrations with same name even after deleting the file即使删除文件后也无法创建具有相同名称的迁移
【发布时间】:2017-08-26 17:02:24
【问题描述】:
php artisan make:migration create_batles_table 创建迁移:2017_04_01_123218_create_batles_table php artisan make:migration create_batles_table [无效参数异常] CreateBattlesTable 迁移已存在。 ---------------------文件被我删除------------- ---- php artisan make:migration create_batles_table [错误异常] 包括(/home/lubuntu/Desktop/work/git/lara/database/migrations/2017_04_01_123218_create_batles_table.php):失败 编辑打开流:没有这样的文件或目录

现在使用另一个名称“newbatles”而不是“batles”

php artisan make:migration create_newbatles_table 创建迁移:2017_04_01_123343_create_newbatles_table php artisan make:migration create_newbatles_table [无效参数异常] CreateNewbatlesTable 迁移已存在。 ------------文件被我删除了---------------- php artisan make:migration create_newbatles_table [错误异常] 包括(/home/lubuntu/Desktop/work/git/lara/database/migrations/2017_04_01_123343_create_newbatles_table.php):f 无法打开流:没有这样的文件或目录

为什么我不能在 Laravel 5.4 中重新创建具有相同名称的迁移?

【问题讨论】:

  • 你是否也从migrations表中删除了?
  • 如果存在则删除迁移文件,运行composer du 命令并再次尝试创建迁移。

标签: php laravel


【解决方案1】:

在迁移中更改某些内容时,请始终运行以下命令:

php artisan cache:clear
php artisan view:clear
php artisan route:clear
composer dump-autoload

它会清除所有旧东西并顺利运行!

更新:

但请记住:表名在该数据库中必须是唯一的……它就像硬盘驱动器上文件夹的名称。您不能拥有多个具有该特定名称的表!

【讨论】:

  • 作曲家转储自动加载工作但每次尝试重新创建时都需要一次又一次地做。
  • 是的,因为您使用的是相同的名称。它创建了一个缓存,并认为您想要进行相同的迁移……这就是它的工作原理……
  • 但无论如何你所做的都会创建同一张表....我认为这不好!!!同一个数据库中不能有同一张表!
  • 是的。实际上,我在使用额外的参数时偶然发现了它 --create=battles 一种真正的关注。
  • 好吧,我希望你现在能更好地理解它......表名在该数据库中必须是唯一的......它就像硬盘驱动器上文件夹的名称......你不能拥有多个具有该特定名称的表!
【解决方案2】:

你也把它从迁移表中删除了吗?

如果没有请运行

php artisan migrate:refresh

刷新表格。 但请注意,这样您将清理所有数据库表! 所以如果你不想这样做,直接从数据库中删除迁移即可。

【讨论】:

  • 不,我还没有迁移任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2020-10-12
相关资源
最近更新 更多