这有点好笑,但由于我选择我的数据库名称为“shahkelid”,我无法使用 laravel 迁移创建“用户”表。任何其他表名都可以!当我使用其他数据库名称时,一切正常(我没有忘记更新 database.php 配置文件),所以我 100% 确定我的 Schema 类编写正确。
我唯一不明白的是,为什么当我将数据库名称更改为“shahkelid”时会出现此错误?
这是我在终端收到的错误:
[Exception]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'shahkelid.users'
doesn't exist (SQL: create table `users` (`id` int unsigned not null auto_
increment primary key, `username` varchar(255) not null, `password` varchar
(255) not null, `created_at` timestamp default 0 not null, `updated_at` tim
estamp default 0 not null) default character set utf8 collate utf8_unicode_
ci) (Bindings: array (
))
由于我之前使用过这个数据库,我只是尝试删除整个数据库并使用迁移重建它。但它不再起作用了。
UPDATE:
Migration Schema ->
public function up()
{
Schema::create('users', function($table) {
$table->increments('id');
$table->string('username');
$table->string('password');
$table->timestamps();
});
}
Database Config ->
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'shahkelid',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
注意:当我运行迁移时,我确信 laravel 可以连接并找到正确的数据库,因为迁移表已创建,但问题是它在创建用户表时返回该错误。我还确定我的模式语法是正确的,因为当我为我的表选择其他名称时它工作正常。