我需要能够在已设置为使用 postgresql UDR 的数据库中的现有表中创建一个新列。根据我的阅读,除非您以特定方式编写语法,否则您无法在 BDR 中运行 DDL 命令……例如,我在 stackoverflow 上找到了这篇文章:
使用 Postgres BDR 9.4.1 迁移 Django 1.8
我试图在我的 UDR 设置中遵循类似的方法......但它对我不起作用。
具体来说,我尝试了以下方法:
mydatabase=# alter table mytable add column newcolumn character varying(50) not null default 'boo';
ERROR: ALTER TABLE ... ADD COLUMN ... DEFAULT may only affect UNLOGGED or TEMPORARY tables when BDR is active; mytable is a regular table
和这个:
mydatabase=# alter table mytable add column newcolumn character varying(50);
ERROR: No peer nodes or peer node count unknown, cannot acquire DDL lock
HINT: BDR is probably still starting up, wait a while
mydatabase=#
是否允许在 UDR 设置中运行 DDL 命令?如果有人有一些提示,我将不胜感激。谢谢。