6

我的 laradock 项目有问题:我已经下载并安装了 docker,并且我已经成功地完成了 laradock 的 laravel 项目设置。我使用 php 7、laravel(5.5.14) 和最新版本的 laradock。我开始在 shell 中编写我的项目:

docker-compose up -d nginx mysql

并且所有服务都开始了。我的环境文件是:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=root

但是当我尝试使用迁移时

php artisan migrate

我收到此错误:

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations) 
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 
PDO::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known 

我的名为 homestead 的数据库已创建并且可以正常工作。在我的 laravel 项目中,在迁移文件夹下我有 3 个文件 php:create_user_tablecreate_password_reset_tablecreate_customer_table(我已经写了这个文件)。我需要在我的数据库中创建一个名为customer的表,其中包含一些列:

Schema::create('customers', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name');
        $table->string('last_name');
        $table->boolean('azienda');
        $table->string('iva');
        $table->string('ds');
        $table->boolean('fatres');
        $table->string('cf');
        $table->string('mail');
        $table->string('telefono');
        $table->integer('sponsor');
        $table->string('indinst');
        $table->string('civinst');
        $table->string('cityInst');
        $table->string('capinst');
        $table->string('provinst');
        $table->string('indf');
        $table->string('civf');
        $table->string('capf');
        $table->string('provf');
        $table->string('cityFatt');
        $table->timestamps();
    });

如何完成迁移并创建表?谢谢你的答案!

4

1 回答 1

10

@Stefano Zaniboni 在评论中回答了这个问题,但要扩展:

我遇到了这个问题,因为我习惯于php artisan在本地目录中运行命令,而不是在 virtualbox / vagrant box / docker 容器中运行命令。

Laravel文档提到您需要php artisan migrate从虚拟机中运行命令。

如果您使用的是 docker,则可以使用docker ps. 然后通过 ssh 进入容器使用docker exec -it <containerId> /bin/bash. 然后只需cd进入您的项目目录并运行php artisan migrate.

于 2020-05-29T22:05:58.677 回答