Ich habe eine Mult-Tenant-Anwendung, in der Mandanten in verschiedenen Schemas innerhalb derselben Datenbank eingerichtet werden. Der Grund dafür ist, dass sie einige gemeinsame Daten haben, die sie für eines der Schemata verwenden.Postgres run-Anweisung für mehrere Schemas
Bis jetzt habe ich ein Bash-Skript mit einer Liste der darin enthaltenen Schemata verwendet, die jedes Mal aktualisiert werden muss, wenn ein neues Schema hinzugefügt wird, und ich muss Änderungen an Tabellenschemas über die Konten vornehmen. Zum Beispiel eine neue Spalte zu einer Tabelle hinzufügen.
Gibt es eine Möglichkeit in Postgres, psql, etc ... zum Beispiel auszuführen
ALTER TABLE some_table ADD COLUMN some_column TEXT NOT NULL DEFAULT '';
ohne String Ersatz in einem anderen Skript wie bash zum Beispiel zu tun.
Also mit anderen Worten gibt es einen einfachen Weg, um die Schemas zu bekommen, und in psql eine for-Schleife schreiben, die durch die Schemata iterieren und die Anweisung jeweils durch Setzen von search_path zum Beispiel ausführen.
Der Grund dafür ist, dass die Anzahl der Mandanten wächst und neue Benutzer von Administratoren hinzugefügt werden können, die keine Entwickler sind. Daher aktualisiere ich ständig meine Shell-Skripte. Dies wird nur exponentiell wachsen. Gibt es eine Standardmethode, um diese Art von Problem zu lösen?
Ja, können Sie eine Prozedur auf das Hauptschema (Posgres) zu erstellen hole alle Schemas wie im Schema INFORMATION_SCHEMA und machen Sie Ihre Änderung den Befehl für sie ausführen –