【发布时间】:2017-07-22 08:53:14
【问题描述】:
我有一个多租户应用程序,其中租户在同一数据库中的不同架构上设置。原因是他们在其中一个模式上使用了一些共享数据。
到目前为止,我一直在使用 bash 脚本,其中包含架构列表,每当添加新架构时都需要更新这些架构,并且我需要执行诸如跨帐户更改表架构之类的事情。例如向表中添加新列。
Postgres、psql 等有没有办法运行例如
ALTER TABLE some_table ADD COLUMN some_column TEXT NOT NULL DEFAULT '';
无需在另一个脚本(例如 bash)中进行字符串替换。
换句话说,有没有一种足够简单的方法来获取模式,并在 psql 中编写一个 for 循环,该循环将遍历模式并通过设置 search_path 来运行每个语句。
原因是租户数量在增长,并且新租户可以由非开发人员的管理员用户添加,因此我不断更新我的 shell 脚本。这只会成倍增长。有处理这类问题的标准方法吗?
【问题讨论】:
-
是的,您可以在主架构 (posgres) 上创建一个过程以获取 INFORMATION_SCHEMA 架构中的所有架构,并对其运行命令进行更改
标签: postgresql