Laravel 5.1 - 迁移错误
Laravel 5.1 - Migration Error
我试图创建一个新的 table,但是当我添加 Schema::create()
部分时,我 copy/pasted 来自用户所以我的原始用户 table,我的新 table 迁移为 Schema::create('users')
,它 运行 遇到了问题,因为有 2 个 table 同名。当我意识到这个问题时,我修复了它但是因为我现在不能用 php artisan migrate:reset
和 php artisan migrate:refresh
删除 tables 因为现在已经有两个同名的 tables . (因此,我也无法回滚)。
我的数据库名称原来是 Homestead。
我遇到的错误:
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'homestead.users' (SQL: drop table users
)
[PDOException]
SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'homestead.users'
而且我不确定如果我手动登录 vagrant ssh
并手动删除和创建 tables 是否会把一切都搞砸:
mysql> drop database Homestead;
mysql> create database Homestead;
根据@Jamesking56 的评论,我使用了:
mysql> drop database homestead;
mysql> create database homestead;
php artisan migrate
这解决了我的问题。
在迁移的 down()
函数中放入此代码。
Schema::dropIfExists('users');
然后从命令行执行以下命令。
php artisan migrate:rollback
php artisan migrate
重要提示: 如果用户 table 存在,这将删除用户 table。如果 table 不存在,则不会发生任何事情,也不会给出任何错误,因为 MySQL 会将错误转换为警告。
从数据库中删除所有 table,包括迁移 table。删除 table 后,您可以像以前一样迁移数据库。
我试图创建一个新的 table,但是当我添加 Schema::create()
部分时,我 copy/pasted 来自用户所以我的原始用户 table,我的新 table 迁移为 Schema::create('users')
,它 运行 遇到了问题,因为有 2 个 table 同名。当我意识到这个问题时,我修复了它但是因为我现在不能用 php artisan migrate:reset
和 php artisan migrate:refresh
删除 tables 因为现在已经有两个同名的 tables . (因此,我也无法回滚)。
我的数据库名称原来是 Homestead。
我遇到的错误:
[Illuminate\Database\QueryException] SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'homestead.users' (SQL: drop table
users
)[PDOException] SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'homestead.users'
而且我不确定如果我手动登录 vagrant ssh
并手动删除和创建 tables 是否会把一切都搞砸:
mysql> drop database Homestead;
mysql> create database Homestead;
根据@Jamesking56 的评论,我使用了:
mysql> drop database homestead;
mysql> create database homestead;
php artisan migrate
这解决了我的问题。
在迁移的 down()
函数中放入此代码。
Schema::dropIfExists('users');
然后从命令行执行以下命令。
php artisan migrate:rollback
php artisan migrate
重要提示: 如果用户 table 存在,这将删除用户 table。如果 table 不存在,则不会发生任何事情,也不会给出任何错误,因为 MySQL 会将错误转换为警告。
从数据库中删除所有 table,包括迁移 table。删除 table 后,您可以像以前一样迁移数据库。