我有使用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
在我的主机数据库上有三个表:
当我运行应用程序并尝试引用数据库时,我遇到如下错误:
Connection.php第715行中的QueryException:SQLSTATE [42S02]:找不到基表或视图:表'regappbase.users'不存在(SQL:select * from users where email =(e-mail @ ghhjghj77) )
如何创建数据库regappbase?我不需要存储数据,只需要存储架构
答案 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