MySql使用Makefile创建数据库

时间:2018-05-06 18:50:25

标签: mysql docker makefile

include .env

help:
    @echo ""
    @echo "usage: make COMMAND"
    @echo ""
    @echo "Commands:"
    @echo "  mysql-create-db     Create mysql database"

mysql-create-db:
    @docker-compose exec -T mysqldb mysql -u"$(MYSQL_USER)" -p"$(MYSQL_PASSWORD)" -e \'create database abcd\'

它也会导致简单的" show databases"查询也。

我不确定为什么它不起作用

1 个答案:

答案 0 :(得分:0)

在SO上提出问题的第一条规则:始终包括您输入的命令以及您获得的输出,剪切并粘贴到您的问题中。如果输出太长而且要包含杂乱,那么至少总是包括你得到的实际错误或不正确的输出,以及它之前和之后的几行用于上下文。

编写makefile的第一条规则:从不添加@直到你的makefile完全运行。通过隐藏重要细节,你可以在脚下射击自己。或者,请阅读http://make.mad-scientist.net/managing-recipe-echoing/以了解处理此问题的另一种方式。

编写makefile的第二条规则:始终确保在尝试将其添加到makefile配方之前键入shell命令行时命令有效。

我对码头工作者了解不多,但我怀疑这是一个引用shell的问题而不是制造问题......我怀疑这个命令如果切入并粘贴到一个问题上就不会起作用shell提示。那是因为我认为你的引用是错误的。

试试这个(注意mysql命令的不同引用):

mysql-create-db:
        @docker-compose exec -T mysqldb mysql -u"$(MYSQL_USER)" -p"$(MYSQL_PASSWORD)" -e "'create database abcd'"

这可以确保最终命令是一个单词,包括引号。