10

嗨,我刚刚尝试使用 Sai 安装 Laravel 8,但遇到了问题

我所做的是首先从 laravel 自己的页面运行 curl one-liner

curl -s https://laravel.build/sail-test | bash

一旦完成,我就按照它说的去做并运行

cd sail-test && ./vendor/bin/sail up

一切都按原样开始,我可以连接到数据库,我可以在 http://localhost 上看到该站点,但是在尝试迁移时出现以下错误:

$ sail artisan migrate:install

   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] No route to host (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
    674▕         // If an exception occurs when attempting to run a query, we'll format the error
    675▕         // message to include the bindings with SQL, which will make this exception a
    676▕         // lot more helpful to the developer instead of just the database's errors.
    677▕         catch (Exception $e) {
  ➜ 678▕             throw new QueryException(
    679▕                 $query, $this->prepareBindings($bindings), $e
    680▕             );
    681▕         }
    682▕ 

      +29 vendor frames 
  30  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

我需要更改.env文件中的任何内容还是需要先进行任何其他更改?

4

2 回答 2

16

首先(此命令将返回您的 mysql 容器 IP 地址):

$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name_or_container_ID>

.env 文件中的第二个:

DB_HOST=<ip_address_returned_from_command_above>

接着:

$ sail artisan migrate

编辑:

只需将数据库容器的名称添加到 DB_HOST 环境变量中:

...
DB_HOST=mysql
...
于 2020-12-13T16:43:52.033 回答
1

您需要通过登录sai 来执行工匠命令。以下是步骤。

  1. 转到您的项目目录并运行以下命令

    帆壳

  2. 在该命令之后,您将登录到您的容器中,您可以运行 artisan migrate 命令。

于 2021-01-06T14:42:43.427 回答