【问题标题】:"Base table or view not found" error in docker containerdocker 容器中的“未找到基表或视图”错误
【发布时间】:2016-11-12 16:49:32
【问题描述】:

我有带有 mysql 数据库的 Laravel 应用程序。我正在尝试使用这个 docker-compose.yml 在 docker 中运行它:

load_balancer:
image: tutum/haproxy
links:
    - web
ports:
    - "80:80"

cache:
    image: redis

web:
    image: andrewmclagan/nginx-hhvm
    links:
        - db
        - cache
    volumes: 
        - ./:/var/www
    environment:
        - APP_ENV=local
        - DB_DATABASE=regappbase
        - DB_PASSWORD=Q1w2e3r4t5
        - DB_HOST=db
        - VIRTUAL_HOST=laravel.local

db:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: Q1w2e3r4t5
        MYSQL_DATABASE: regappbase

在我的主机数据库上有三个表:

  • 迁移
  • 密码重置
  • 用户

当我运行应用程序并尝试引用数据库时,出现如下错误:

Connection.php 第 715 行中的 QueryException:SQLSTATE[42S02]:未找到基表或视图:表 'regappbase.users' 不存在(SQL:select * from users where email=(e-mail@ghhjghj77) )

如何创建数据库 regappbase?我不需要存储数据,只需要架构

【问题讨论】:

    标签: mysql laravel docker docker-compose


    【解决方案1】:

    好吧,我花了两天时间尝试更改变量,或者使用 data-only-container,或者挂载 sql-scritps。 但决定是通过运行 web-container 做出的:

    php artisan migrate
    

    【讨论】:

      【解决方案2】:

      查看 mysql 映像 (hub.docker.com) 的文档。有一个目录,您可以将 .SQL 脚本挂载到其中,在容器启动时,mysql 将循环并执行该目录中的每个文件。使用它来构建您的数据库架构

      "初始化一个新的实例 首次启动容器时,将使用提供的配置变量初始化一个新的数据库 mysql。此外,它将执行 /docker-entrypoint-initdb.d 中的扩展名为 .sh 和 .sql 的文件。您可以通过将 SQL 转储安装到该目录并提供带有贡献数据的自定义图像来轻松填充您的 mysql 服务"

      【讨论】:

        猜你喜欢
        • 2018-01-25
        • 2019-06-09
        • 2016-04-16
        • 2020-03-13
        • 1970-01-01
        • 2016-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多