Docker容器中出现“基表或未查找视图”错误

时间:2016-07-10 18:20:55

标签: mysql laravel docker docker-compose

我有使用mysql db的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

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

  • 迁移
  • password_resets
  • 用户

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

  

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

好吧,我花了两天时间尝试更改变量,或者使用仅数据容器,或者挂载sql-scritps。 但是决定是通过运行web-container来实现的:

php artisan migrate