Я ищу другие способы, кроме -c или --command =, чтобы передавать SQL-запросы в командную строку PSQL.
Какие есть альтернативы этому:
String command2 = "psql --dbname=postgresql://postgres:password@127.0.0.1:1234/db123 -c 'ALTER TABLE audit ALTER COLUMN event TYPE character varying(3000);'";
Подписанзапрос select работает:
String command2 = "psql --dbname=postgresql://postgres:password@127.0.0.1:1234/db123 -c 'SELECT * FROM audit'";
Тогда почему запрос Alter не работает?
Некоторый фон при необходимости:
Я использую библиотеку io.kubernetes в Java,Я хочу выполнить команду psql для контейнера с postgres.
Следующее не работает:
String command2 = "psql --dbname=postgresql://postgres:password@127.0.0.1:1234/db123 -c 'ALTER TABLE audit ALTER COLUMN event TYPE character varying(3000);'";
String command[] = new String[] { "bash", "-c", command2 };
Exec exec = new Exec();
Process exec2 = exec.exec(namespace, podName, command, dbContainerName, stdIn, stdOut);
Thread.sleep(10000);
exec2.destroy();
Во входном потоке я получаю следующую ошибку:
bash: -c: line 0: unexpected EOF while looking for matching `''
Когда я использую тот же SQL-запрос с командной строкой kubernetes, он работает:
kubectl exec -it pod -c container -- bash -c "psql --dbname=postgresql://postgres:password@127.0.0.1:1234/db123 -c 'ALTER TABLE audit ALTER COLUMN event TYPE character varying(3000);'"
Тогда почему не работает библиотека Exec через java?
Есть ли другие способыпередать запросы Alter SQL команде PSQL?