我以前也遇到过这个错误,但这次有点不同。
当我向 Forge 推送更新时,Laravel Forge 说它部署失败,但它部署得很好。由于此错误,它只是没有对数据库结构进行任何更改:
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'job_posts' already exists
当我运行 php artisan migrate:status
时,job_posts 表是唯一显示为未运行的表,即使它显然已经运行过。
删除现有表或任何会删除现有记录的操作也是不可能的,因为此更改是在几周前进行的,并且用户已经开始使用它。
有没有办法在不删除现有记录的情况下解决这个问题?
最佳答案
在您的迁移中,您只需使用
if (!Schema::hasTable('job_posts')) {
// your migrations
}
如果为 false,则运行迁移。
这样您的记录就不会被删除。
希望这有帮助
关于php - Laravel 锻造 : Base table or view already exists: 1050 Table already exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48858795/