Php [Laravel]:SQLSTATE[3F000]:架构名称无效

Php [Laravel]:SQLSTATE[3F000]:架构名称无效,php,postgresql,laravel,Php,Postgresql,Laravel,建造一个拉威尔项目。5.4运行php artisan migrate时,会收到以下错误消息: [Illuminate\Database\QueryException] SQLSTATE[3F000]: Invalid schema name: 7 ERROR: no schema has been selected to create in (SQL: create table "migrations" ("id" serial primary key not null, "migration"

建造一个拉威尔项目。5.4运行php artisan migrate时,会收到以下错误消息:

[Illuminate\Database\QueryException]
SQLSTATE[3F000]: Invalid schema name: 7 ERROR: no schema has been selected
to create in (SQL: create table "migrations" ("id" serial primary key not
null, "migration" varchar(255) not null, "batch" integer not null))
这种情况现在才开始发生,而我之前在这个项目中创建了一个模型并进行了相应的迁移,没有发生任何事件,并且自初始设置开始工作以来,没有更改过我的.env文件或config/database.php文件。我认为这可能与错误的postgresql用户有关,但我登录到CLI并将角色设置为相关数据库的所有者。无效。

是否已放置.env。如果不这样做

mv .env.example .env
并根据您的喜好更新以下内容

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
您是否放置了.env。如果不这样做

mv .env.example .env
并根据您的喜好更新以下内容

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我将模式名称添加到表中,这对我很有用。原来是桌子,现在是公共桌

我将架构名称添加到我的表中,这对我很有用。原来是桌子,现在是公共桌

如果您的模式名不是public,只需将其重命名为public

如果您的模式名不是public,只需将其重命名为public

有时我会遇到这个问题,在我的例子中,我通过在php.ini文件中注释清楚的行来解决它,您需要根据您使用的银行进行更改

;extension = pdo_pgsql


有时我会遇到这个问题,在我的例子中,我通过在php.ini文件中注释需要根据您使用的银行进行更改的清晰行来解决这个问题

;extension = pdo_pgsql


确保您的数据库有一个名为public的模式,这是使用PostgreSQL的laravel中的默认模式。当前,我的模式在my database.php文件中设置为:schema=>env'DB_PGSQL_schema','public'。在我的.env文件中,我有DB_PGSQL_SCHEMA=fes,这在以前的迁移中对我有效,并且最近停止了工作,我没有修改这些文件中的任何内容。在这种情况下,我还是应该创建一个名为“public”的模式,还是应该是“fes”?编辑:它已经有了“public”架构,但是创建“fes”导致了迁移工作。非常感谢。您找到任何解决方案了吗?请确保您的数据库有一个名为public的模式,这是使用PostgreSQL的laravel中的默认模式。当前,我的模式在my database.php文件中设置为:schema=>env'DB_PGSQL_schema',public'。在我的.env文件中,我有DB_PGSQL_SCHEMA=fes,这在以前的迁移中对我有效,并且最近停止了工作,我没有修改这些文件中的任何内容。在这种情况下,我还是应该创建一个名为“public”的模式,还是应该是“fes”?编辑:它已经有了“public”架构,但是创建“fes”导致了迁移工作。非常感谢。你找到解决办法了吗?