2

我创建了一个新的 Laravel 项目并安装了 Sail,composer require laravel/sail --dev然后在 Docker 中启动php artisan sail:installsail up运行该项目。

通过执行这些操作,我的 .env 文件从

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_docker
DB_USERNAME=root
DB_PASSWORD=

DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel_docker
DB_USERNAME=sail
DB_PASSWORD=password

现在我有两个正在运行的 Docker 容器:

laravel-docker_laravel.test_1
laravel-docker_pgsql_1

我可以使用sail artisan migrate.

接下来,我想将 Tableplus(或 Postico)与我在 Docker 中运行的 Postgresql 数据库连接起来。因此,我填写了以下信息:

表加截图

尝试连接时出现 ERROR FATAL:角色“sail”不存在。

有人可以帮我吗?

编辑 1:从一些终端命令添加屏幕截图。我可以连接到 docker 容器中的数据库,查看表列表并获取包含用户表中所有行的表(使用 Laravel Sail 插入播种机)

命令行屏幕截图

编辑2:docker-compose ps

docker-compose up 截图

4

2 回答 2

1

感谢这篇文章,我找到了一个可行的解决方案。

更改为docker-compose.yml文件中的其他端口可解决此问题。

前:

pgsql:
    image: 'postgres:13'
    ports:
        - '${FORWARD_DB_PORT:-5432}:5432'

后:

pgsql:
    image: 'postgres:13'
    ports:
        - '${FORWARD_DB_PORT:-5632}:5432'

在 TablePlus中将端口号更改为后5632,我就可以连接到数据库了。

于 2021-06-07T07:46:28.380 回答
0

我有同样的问题“角色“帆”不存在”。在这种情况下,我们需要使用命令./vendor/bin/sail down -v来删除现有的 Docker 卷数据。之后,您可以执行./vendor/bin/sail up命令。

于 2022-01-06T09:08:59.643 回答