【问题标题】:laravel artisan migrate: when table already exist goes into memory looplaravel artisan migrate:当表已经存在时进入内存循环
【发布时间】:2023-03-29 13:45:02
【问题描述】:

我使用的是 laravel 5.1

当我第一次尝试$ php artisan migrate:install时

我有一个 mysql 数据库“快速入门”,其中包含“迁移”表。

当我第二次尝试时:

$ php artisan migrate:install

(it just hangs)

我试过了

$ strace php artisan migrate:install

我发现了以下内容:

.
.
.
poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}])
recvfrom(5, "le 'migrations' already exists", 93, MSG_DONTWAIT, NULL, NULL) = 30
brk(0x2ee0000)                          = 0x2ee0000
mmap(NULL, 401408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe96b647000
mremap(0x7fe96b647000, 401408, 405504, MREMAP_MAYMOVE) = 0x7fe96279d000
mremap(0x7fe96279d000, 405504, 409600, MREMAP_MAYMOVE) = 0x7fe96b645000
mremap(0x7fe96b645000, 409600, 413696, MREMAP_MAYMOVE) = 0x7fe96279b000
mremap(0x7fe96279b000, 413696, 417792, MREMAP_MAYMOVE) = 0x7fe96b643000
mremap(0x7fe96b643000, 417792, 421888, MREMAP_MAYMOVE) = 0x7fe962799000
mremap(0x7fe962799000, 421888, 425984, MREMAP_MAYMOVE) = 0x7fe96b641000
mremap(0x7fe96b641000, 425984, 430080, MREMAP_MAYMOVE) = 0x7fe962797000
mremap(0x7fe962797000, 430080, 434176, MREMAP_MAYMOVE) = 0x7fe96b63f000

.
.
.

而不是进入一些内存循环并挂起为什么它不显示表已经存在的消息。

【问题讨论】:

  • 嗨@Santosh 您是否设法找到解决此问题的方法?我在这里面临同样的问题。
  • 禁用调试器

标签: laravel-5.1 laravel-migrations


【解决方案1】:

可能有些迁移表已经存在,为了快速解决,你可以删除并重新创建数据库,你可以从终端或“phpmyadmin”之类的管理器中完成。这不能纠正你的错误,运气。

【讨论】:

  • 使用 phpmyadmin,我删除了“快速启动”数据库。然后我运行php artisan migrate:refresh。它创建了所有的表。那么如果我尝试php artisan migrate:install 它仍然挂起,显示类似的 strace 输出。如果表已经存在,为什么migrate 命令会挂起
【解决方案2】:

在 Laravel 5.1 中,您不需要使用 installcommand。

只需使用php artisan migrate。

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

【讨论】:

  • 我发现,不是安装的问题。即使我这样做php artisan migrate 它也会进入内存。它会挂起。如果我使用 strace 进行检查,那么它会像上面那样显示因为我的 migrate 命令正在工作,我无法继续进行
猜你喜欢
  • 2020-06-20
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2018-06-29
  • 2016-08-09
  • 2019-07-25
  • 2021-09-03
  • 2020-10-23
相关资源
最近更新 更多