Framework: 检查迁移表是否存在时,迁移不考虑前缀 [bug]

创建于 2013-01-11  ·  3评论  ·  资料来源: laravel/framework

原始错误在这里找到: https :

我在 IRC 中与 Machuga 进行了交谈 - 有人建议我创建一个问题。

问题:

第一次迁移出错: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

重现步骤:

  1. 全新安装 L4
  2. 在数据库连接配置(MySql)中为数据库添加前缀
  3. 创建迁移$ php artisan migrate:make create_users_table --table=users --create
  4. 填写一些字段,运行迁移$ php artisan migrate
  5. 尝试迁移:刷新$ php artisan migrate:refresh
  6. 错误: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

    相关文件:

我追踪到这个文件Illuminate\Database\MigrationsDatabaseMigrationRepository::repositoryExists() ,特别是在其中,调用return $schema->hasTable($this->table);在这里

传递给 hasTable() 的 $this->table 变量不包含表前缀。 Illuminate\Database\Schema\MySqlBuilder::hasTable($table)也不检查前缀。

不幸的是,我还不熟悉代码/约定,不知道您希望在哪里查找前缀。 (不知道哪个班级应该有那种“知识”)

所有3条评论

好,谢谢。 我们会把它修好。

固定的。

我遇到了同样的问题,我刚刚从网站下载了框架。
我想知道修复是否已提交到站点版本。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Fuzzyma picture Fuzzyma  ·  3评论

lzp819739483 picture lzp819739483  ·  3评论

PhiloNL picture PhiloNL  ·  3评论

klimentLambevski picture klimentLambevski  ·  3评论

digirew picture digirew  ·  3评论