下面的代码从数据库中单独提取视图。但是,我试图让它在单个docker run或exec命令中运行。
现在,当我尝试时,管道命令以及尝试转义引号的组合都会给我带来错误。
implementation ('com.android.support:appcompat-v7:27.1.1') {
exclude group: 'android.arch.lifecycle'
}
api "android.arch.lifecycle:runtime:1.1.1"
kapt "android.arch.persistence.room:compiler:1.1.1"
有人知道如何在一个docker命令中实现这一目标吗?
例如:
mysql -u username INFORMATION_SCHEMA
--skip-column-names --batch
-e "select table_name from tables where table_type = 'VIEW'
and table_schema = 'database'"
| xargs mysqldump -u username database
> views.sql
很多爱。
答案 0 :(得分:1)
您可以将所有命令放入容器中的bash脚本中,然后执行脚本即可!
答案 1 :(得分:1)
您可以在非“数据库服务器上”的某个地方运行Work[0] += displayQuestion(QuestionList[0]);
客户端命令和mysql
工具。在您的情况下,假设您使用诸如mysqldump
之类的选项启动了数据库,则可以从具有MySQL服务器的主机上运行它们。看起来像
docker run -p 3306:3306
这避免了所有尝试将其输入mysql -h 127.0.0.1 -u username INFORMATION_SCHEMA \
--skip-column-names --batch \
-e "select table_name from tables where table_type = 'VIEW' and table_schema = 'database'" \
| xargs mysqldump -h 127.0.0.1 -u username database \
> views.sql
的shell引用问题,也避免了需要主机上的根级访问权限来执行管理任务的要求(如果可以在以下位置运行任何Docker命令)然后,您就可以使用docker exec
将自己添加到主持人的docker run
中。
尽管如此,我也同意@MichaelBoesl的回答:这已经足够长,以至于很难将它变成单线,这真的不值得各种报价和转义带来的麻烦。我可能会将其写到脚本中,然后将SQL查询放入文件中。
/etc/sudoers