SQLSTATE [42P07]:重复表:7错误:关系“迁移”已存在

时间:2016-09-20 18:23:56

标签: php laravel laravel-5 database-migration

  • Laravel版本:5.1
  • PHP版本:5.6
  • 数据库驱动程序&版本:psql

说明

我第一次运行php artisan migrate,它运行得非常好。

然后:

我已经向更改我的一个表格添加了一个迁移脚本。

我一跑php artisan migrate,就开始看到这个错误了。

enter image description here

我的 database.php

中有此设置
'default' => env('DB_CONNECTION', 'pgsql'),


'pgsql'       => [
    'driver'      => 'pgsql',
    'host'        => env('DB_HOST'),
    'database'    => env('DB_DATABASE'),
    'username'    => env('DB_USERNAME'),
    'password'    => env('DB_PASSWORD'),
    'charset'     => 'utf8',
    'collation'   => 'utf8_unicode_ci',
    'prefix'      => '',
    'strict'      => false,
    ],

请让我知道还有什么,我可以提供。

3 个答案:

答案 0 :(得分:0)

重新迁移之前你没有php artisan migrate:rollback吗?如果您这样做并且迁移仍然存在,那么在执行php artisan migrate:resetphp artisan migrate之后手动删除它必须正常工作您的配置完全正确,除非此

'default' => env('DB_CONNECTION', 'psql'), 

将其更改为

'default' => env('DB_CONNECTION', 'pgsql'),

答案 1 :(得分:0)

实际的解决方案是将'schema' => 'public',附加到psql DB_CONNECTION的末尾。

'pgsql'       => [
    'driver'      => 'pgsql',
    'host'        => env('DB_HOST'),
    'database'    => env('DB_DATABASE'),
    'username'    => env('DB_USERNAME'),
    'password'    => env('DB_PASSWORD'),
    'charset'     => 'utf8',
    'collation'   => 'utf8_unicode_ci',
    'prefix'      => '',
    'strict'      => false,
    'schema'   => 'public', <------- ADD HERE
    ],

现在,php artisan migrate完美无缺。

答案 2 :(得分:0)

这是一个古老的问题,但是我最近遇到了这个问题,而且似乎在从另一个数据库所有者复制迁移表后,它也发生了更改。

因此,请检查您的数据库和表所有者,并确保表由同一用户拥有。