Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Автоматическое создание функции в Postgresql  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 487
Нашел статью на на тему автоматического исполнения скриптов при старте приложения: https://walkingtechie.blogspot.com/2018/12/execute-schema-and-data-sql-on-startup-spring-boot.html

У меня почти такая задача, но при старте надо выполнить скрипт создания функции. По аналогии сделал в ресурсах файл schema.sql:
CREATE OR REPLACE FUNCTION public.myFunction (
  startreportdate timestamp,
  endreportdate timestamp
)
RETURNS TABLE (
  user_id bigint,
  user_data varchar(225)
) AS
$body$
BEGIN
--тут запрос
    ;

END;
$body$
LANGUAGE 'plpgsql';


При старте приложения этот файл находится и пытается выполниться. Но получается ошибка
Unterminated dollar quote started at position in SQL и далее мой скрипт.
Как передать такой скрипт на выполнение?
17 мар 20, 12:20    [22100513]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4486
Павел Гужанов
но при старте надо выполнить скрипт создания функции
зачем при обычном рестарте или перезагрузке менять схему бд?
17 мар 20, 12:28    [22100521]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 487
Так поставлена задача. Могли измениться функции и при рестарте должны быть актуальные
17 мар 20, 12:30    [22100522]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4486
Павел Гужанов
Так поставлена задача. Могли измениться функции и при рестарте должны быть актуальные
а ка вы получаете актуальные.?
То есть я поправил на своей машине код функции... Дальше?
17 мар 20, 12:34    [22100529]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 487
поправил на своей машине, запушил в гит, код ревьювер одобрил, при новой сборке актуальные скрипты должны запуститься
17 мар 20, 13:13    [22100578]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5179
Павел Гужанов,

Flyway
Liquibase

Читаем, думаем :-)
17 мар 20, 13:36    [22100596]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4486
Павел Гужанов
поправил на своей машине, запушил в гит, код ревьювер одобрил, при новой сборке актуальные скрипты должны запуститься
а с данными заказчика что?
Я так понимаю что СТАРТ приложения и ДЕПЛОЙ придожения должны отличаться.
Имхо
17 мар 20, 13:38    [22100599]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1993
mad_nazgul
Павел Гужанов,

Flyway
Liquibase

Читаем, думаем :-)

Да, liquibase в этом случае норм.
18 мар 20, 09:50    [22101100]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Partisan M
Member

Откуда:
Сообщений: 1400
Павел Гужанов,
>Unterminated dollar quote started at position in SQL и далее мой скрипт.

ну так ищите ошибку в своём SQL. Читайте документацию по созданию функций в PostgreSQL. Причём тут вообще Java? Вы случайно нашли какую-то статью, но она вам бесполезна, так как вы не знаете Java.

>Так поставлена задача.

пошлите нафиг того, кто поставил.

mad_nazgul,
>
>Flyway
>Liquibase

>Читаем, думаем :-)

Думаем, что ваш ответ не относится к вопросу, поэтому читать незачем.
18 мар 20, 10:45    [22101151]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Partisan M
Member

Откуда:
Сообщений: 1400
Павел Гужанов,

В сообщении об ошибке говорится, что у вас есть строка, начинающаяся на $$, но не кончающаяся на $$ . Подробнее см. документацию по словам PostgreSQL dollar quoting. Что, нет желания исправить свою ошибку?
18 мар 20, 10:55    [22101162]     Ответить | Цитировать Сообщить модератору
 Re: Автоматическое создание функции в Postgresql  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3266
Павел Гужанов
Нашел статью на на тему автоматического исполнения скриптов при старте приложения: https://walkingtechie.blogspot.com/2018/12/execute-schema-and-data-sql-on-startup-spring-boot.html

У меня почти такая задача, но при старте надо выполнить скрипт создания функции. По аналогии сделал в ресурсах файл schema.sql:
CREATE OR REPLACE FUNCTION public.myFunction (
  startreportdate timestamp,
  endreportdate timestamp
)
RETURNS TABLE (
  user_id bigint,
  user_data varchar(225)
) AS
$body$
BEGIN
--тут запрос
    ;

END;
$body$
LANGUAGE 'plpgsql';


При старте приложения этот файл находится и пытается выполниться. Но получается ошибка
Unterminated dollar quote started at position in SQL и далее мой скрипт.
Как передать такой скрипт на выполнение?


У меня есть проект spring-boot + flyway.

Можете пропробывать создать функцию при помощи flyway.

Хорошего вам дня!
18 мар 20, 10:56    [22101163]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить