Я ищу способ сценариев изменений схемы postgreSQL в идемпотентном порядке.Idempotent PostgreSQL DDL-скрипты
В MSSQL я мог бы сделать что-то вроде этого:
if(not exists(select * from information_schema.columns where table_name = 'x' and column_name = 'y'))
begin
alter table x add y int
end
go
PostgreSQL, кажется, не позволяют одноранговой пл/PgSQL таким же образом, MSSQL делает с T-SQL, так что я не могу использовать контроль структуры в SQL-скрипте и запустить его с psql -f x.sql.
Я знаю, что PostgreSQL выдаст ошибку, если объект уже существует, но я не хочу игнорировать ошибки.
Я мог бы использовать некоторую технику управления версиями схемы, такую как dbdeploy, но мне очень нравится простота запуска набора файлов через psql без каких-либо нежелательных побочных эффектов.
Возможно ли это?
Спасибо, Все
Спасибо depesz. Это именно то, что я искал. Cheers M – yothenberg