我需要使用一个命令修改postgreSQL表中的一个值。我想在一个容器里运行这样的东西:
su - postgres -c "psql -c \"\c database_name\" -c \"UPDATE table_name SET value_name = 'value';\""
这是唯一能做到这一点的方法,因为echo "\c database_name \\ UPDATE table_name SET value_name = 'value';" | psql
不能在我的postgreSQL中工作,从而导致
invalid command \
我可以通过命令sudo docker exec -it container_name bash -c "*command above*"
在容器中运行它吗?上述命令周围的引号类型都不能使其工作。提前谢谢你!
发布于 2020-12-09 11:09:23
您应该能够避免使用su
,方法是告诉docker exec
本身哪个用户应该运行psql
。您还可以直接运行psql
,而不是执行执行它的bash
shell。
sudo docker exec --user postgres \
psql -c "\c database_name" -c "UPDATE table_name SET value_name = 'value';"
https://stackoverflow.com/questions/65223185
复制