2016-09-07 2 views
1

PostgreSQL에서 단일 데이터베이스/다중 스키마를 사용하여 다중 테넌트 SaaS 애플리케이션을 만들려고합니다. PostgreSQL에서 단일 명령을 사용하여 여러 스키마를 업그레이드 할 수있는 방법이 있는지 궁금합니다. 나는 또한있어 내 스키마 마이그레이션 Liquibase를 사용하지만 Liquibase를 사용하여 여러 스키마 업그레이드 일을하고있는 방법을 찾을 수 없습니다 :업그레이드 스크립트를 여러 PostgreSQL 스키마에 한꺼번에 적용하는 방법은 무엇입니까?

CREATE TABLE tenants_*.users (id VARCHAR(255) PRIMARY KEY NOT NULL); 

참고 :

나는 이런 식으로 뭔가를 찾고 있어요.

도움을 주시면 감사하겠습니다. 감사.

답변

2

가 일반 SQL에서이 작업을 수행 할 내장 방법은 없습니다,하지만 당신은 plpgsql 사용할 수 있습니다 그것을 가지고, 당신은 아마 문자 수 제한이있는 VARCHAR 컬럼을하지 마십시오 측면으로

DO 
$$ 
DECLARE 
    schemaname name; 
BEGIN 
    FOR schemaname IN SELECT nspname FROM pg_namespace WHERE nspname LIKE 'tenants_%' LOOP 
     EXECUTE format('CREATE TABLE %I.users (id text PRIMARY KEY);', schemaname); 
    END LOOP; 
END; 
$$ LANGUAGE plpgsql; 

을 PostgreSQL에서는 실용적인 이점이 없습니다. 어떤 이유로 든 255 자로 잘린 값을 원한다면 텍스트를 사용하십시오.

관련 문제