Cloud SQL

Cloud SQL은 클라우드 환경에서 완전 관리형 SQL 데이터베이스를 제공하는 Google Cloud Platform(GCP) 서비스이며, App Maker 앱은 일반적으로 Cloud SQL에 데이터를 저장합니다. Cloud SQL의 이점에 대해 자세히 알아보세요.

앱 개발자는 다음과 같은 두 가지 유형의 Cloud SQL 인스턴스 중 하나를 선택할 수 있습니다.

  • 기본—G Suite 관리자는 조직의 App Maker 앱 간에 공유되는 Cloud SQL 인스턴스를 설정할 수 있습니다. 기본 인스턴스가 설정되어 있으면 Cloud SQL 데이터 모델을 하나 이상 추가할 때 새 데이터베이스가 자동으로 생성됩니다. 앱에서 사용하기 쉽고 설정이 불필요한 데이터베이스가 필요하다면 이 옵션을 선택하세요. 조직에서는 일반적으로 개발자의 앱 프로토타입 제작 및 테스트 과정에 기본 인스턴스를 사용하며, 이후 프로덕션 앱으로 배포할 준비가 되면 앱을 커스텀 인스턴스로 전환합니다.

  • 커스텀—관리자가 기본 Cloud SQL 인스턴스를 설정한 이후에 개발자가 Cloud SQL 인스턴스를 직접 설정할 수도 있습니다. 다음과 같은 경우에 이 옵션을 선택합니다.

    • 애플리케이션을 이용하는 사용자가 많거나 애플리케이션에서 저장하는 데이터가 많은 경우
    • 데이터베이스를 다른 애플리케이션과 공유해야 하는 경우
    • 데이터베이스를 관리하거나 Cloud SQL 인스턴스를 직접 제어해야 하는 경우

Cloud SQL 보안

앱에서 사용하는 Cloud SQL 인스턴스가 기본 인스턴스이든 커스텀 인스턴스이든 관계없이 사용자 인증 정보는 항상 암호화된 상태로 전송 및 보관됩니다.

  • 기본 Cloud SQL–사용자 인증 정보가 App Maker 서버에 저장됩니다. 앱 개발자나 최종 사용자가 이 정보에 액세스하는 것은 불가능합니다.

  • 커스텀 Cloud SQL–개발자가 Cloud SQL 사용자 인증 정보를 App Maker에 제출한 후에는 관련 앱의 어떤 개발자도 이 정보를 다시 볼 수 없습니다. 개발자가 편집기에서 앱 개발 작업을 수행하는 동안 App Maker는 사용자 인증 정보를 브라우저에 저장합니다. 개발자가 브라우저 탭을 새로고침하거나 닫으면 사용자 인증 정보가 브라우저에서 제거됩니다.

    개발자가 커스텀 Cloud SQL 모델로 앱을 배포할 경우 사용자 인증 정보는 배포되는 앱과 함께 Google 서버에 저장됩니다. 최종 사용자는 이 정보에 절대로 액세스할 수 없습니다.

시작하기 전에

App Maker에서 Cloud SQL을 사용하기 전에 보안 및 비용과 관련한 다음 사항을 고려하세요.

  • GCP에서 저장되는 데이터는 G Suite 조직의 외부에 보관됨—정부 기관을 비롯한 일부 조직에서는 민감한 정보를 저장하는 데 엄격한 요구사항을 적용하고 있습니다. GCP와 G Suite는 모두 엄격한 개인정보 보호 및 보안 표준을 충족하지만 각 서비스에 적용되는 이용약관은 서로 다를 수 있습니다. Google이 개인정보 보호 및 보안 표준을 준수하는 방식을 자세히 알아보세요.

  • Cloud SQL은 GCP의 일부임—커스텀 인스턴스를 사용해 보려면 무료 체험판을 시작하면 됩니다. 하지만 커스텀 인스턴스를 지속적으로 사용하는 경우에는 조직에 요금이 부과됩니다. 가격 책정에 대해 자세히 알아보세요. 대부분의 App Maker 앱에 부과되는 일반적인 월별 요금은 매우 낮은 수준입니다.

앱에 새로운 커스텀 Cloud SQL 인스턴스 사용

기본 Cloud SQL 인스턴스를 사용하지 않으려는 경우 커스텀 Cloud SQL 인스턴스를 대신 사용할 수 있습니다. 커스텀 Cloud SQL 인스턴스를 사용하려고 해도 먼저 G Suite 관리자가 기본 인스턴스를 설정해야 합니다. 앱에서 기존 커스텀 데이터베이스를 사용하거나 개발자가 직접 새 인스턴스를 만들 수 있습니다. 커스텀 인스턴스를 새로 만들 때는 인스턴스를 설정하고 App Maker와 통합하는 데 약간의 시간이 걸립니다.

참고: G Suite 관리자가 기본 Cloud SQL 인스턴스를 설정하지 않았다면 커스텀 Cloud SQL 인스턴스의 데이터베이스에 앱을 연결할 수 없습니다.

새 인스턴스를 설정하려면 2세대 Cloud SQL 인스턴스를 사용하는 것이 좋습니다. App Maker는 1세대 인스턴스도 지원합니다. 가격 책정과 성능 특성은 인스턴스 유형에 따라 다르므로 인스턴스를 만들기 전에 기능을 검토하세요.

아래에 안내된 작업을 수행하려면 다음 조건을 충족해야 합니다.

  • GCP Console에 대한 액세스 권한이 있어야 합니다.
  • Cloud SQL 인스턴스 및 사용자를 생성할 수 있는 권한이 있어야 합니다.

2세대

  1. 2세대 MySQL용 Cloud SQL 인스턴스를 아직 만들지 않았다면 먼저 us-central 리전에 이 인스턴스를 만듭니다.
  2. GCP Console에서 앱이 데이터베이스에 액세스하는 데 사용할 MySQL 사용자 계정을 생성합니다.

    앱을 데이터베이스에 연결할 때 사용할 수 있도록 사용자 이름과 비밀번호를 적어 두세요. 사용자 계정을 통한 무단 액세스를 방지하려면 인스턴스의 모든 계정에 안전한 비밀번호를 설정하는 것이 좋습니다.

  3. GCP Console에서 새 데이터베이스를 생성합니다.
  4. App Maker는 App Engine에서 실행되므로 Cloud 프로젝트에 서비스 계정을 추가하여 App Engine과의 연결을 설정합니다.
    1. GCP Console에서 메뉴 IAM 및 관리자를 클릭하여 IAM 및 관리자 프로젝트 페이지로 이동합니다.
    2. Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
    3. 추가를 클릭합니다.
    4. 새 구성원 대화상자에 다음을 입력합니다.
      appmaker-maestro@appspot.gserviceaccount.com
      역할로 Cloud SQL Cloud SQL 클라이언트를 선택합니다.
    5. 저장을 클릭합니다.
    6. 다른 개발자가 이 앱을 편집하거나 배포할 계획이면 해당 개발자의 Google 계정을 새 구성원으로 추가하고 Cloud SQL 클라이언트 역할을 할당합니다.
  5. 인스턴스의 세부정보를 복사합니다.
    1. GCP Console에서 메뉴 SQL을 클릭하여 Cloud SQL 인스턴스 페이지를 엽니다.
    2. 인스턴스를 클릭하고 인스턴스 연결 이름 필드를 찾습니다.
    3. 인스턴스 연결 이름 상자에서 복사 를 클릭합니다.
  6. 앱이 이 커스텀 Cloud SQL 데이터베이스를 사용하도록 설정합니다.
    1. App Maker에서 앱을 열고 설정 데이터베이스를 클릭합니다.
    2. 커스텀 Cloud SQL 데이터베이스로 전환을 클릭합니다.
    3. 인스턴스 세부정보를 붙여넣은 후 3단계에서 만든 데이터베이스의 이름을 추가합니다. 다음 형식을 사용합니다.
      projectName:regionName:instanceName/databaseName
    4. 데이터베이스 사용자 계정의 사용자 이름과 비밀번호를 입력한 후 계속을 클릭합니다.

1세대

App Maker는 1세대 인스턴스를 지원합니다. 하지만 새 인스턴스를 만들 때는 1세대 인스턴스 대신 2세대 인스턴스를 만드는 것이 좋습니다.

  1. 아직 1세대 인스턴스를 만들지 않았다면 먼저 이 인스턴스를 만듭니다.
  2. 이 인스턴스의 사용자 계정을 구성합니다.
    • 루트 계정의 비밀번호를 변경합니다. 다음 단계에서 만드는 App Engine 연결을 통한 무단 액세스를 방지하려면 계정에 안전한 비밀번호를 설정하는 것이 좋습니다.
    • 앱이 데이터베이스에 액세스하는 데 사용할 수 있는 사용자 계정을 생성합니다. 데이터베이스 사용자를 생성할 때 다음을 수행합니다.
      • 호스트 이름으로 localhost를 지정합니다.
      • 무단 액세스를 방지하려면 계정에 안전한 비밀번호를 설정합니다.

      앱을 데이터베이스에 연결할 때 사용할 수 있도록 사용자 이름과 비밀번호를 적어 두세요.

  3. GCP Console에서 새 데이터베이스를 생성합니다.
  4. App Maker는 App Engine에서 실행되므로 Cloud SQL 인스턴스에 App Maker의 애플리케이션 ID를 추가하여 App Engine과의 연결을 설정합니다.
    1. GCP Console에서 메뉴 SQL을 클릭하여 Cloud SQL 인스턴스 페이지로 이동합니다.
    2. 인스턴스 이름을 클릭하여 개요 페이지를 연 후 승인 탭을 클릭합니다.
    3. 프로젝트 ID 추가를 클릭하고 다음을 입력합니다.
      appmaker-maestro
    4. 완료를 클릭하여 편집 모드를 종료합니다.
    5. 저장을 클릭하여 인스턴스를 업데이트합니다.
  5. 앱에 커스텀 Cloud SQL 인스턴스를 추가합니다.
    1. 앱을 열고 설정 데이터베이스를 클릭합니다.
    2. 커스텀 Cloud SQL 데이터베이스로 전환을 클릭합니다.
    3. 다음 형식으로 주소를 입력합니다.
      projectName:instanceName/databaseName
    4. 데이터베이스 사용자 계정의 사용자 이름과 비밀번호를 입력한 후 계속을 클릭합니다.

앱에 기존 Cloud SQL 데이터베이스 사용

Cloud SQL에 이미 데이터가 있다면 앱에서 이 데이터를 사용하는 모델을 만들 수 있습니다.

  1. 앱에 인스턴스 세부정보를 추가합니다.
    1. GCP Console에서 메뉴 SQL을 클릭하여 Cloud SQL 인스턴스 페이지를 엽니다.
    2. 인스턴스를 클릭하고 인스턴스 연결 이름 필드를 찾습니다.
    3. 인스턴스 연결 이름 상자에서 복사 를 클릭합니다.
    4. App Maker에서 앱을 열고 설정 데이터베이스를 클릭합니다.
    5. 커스텀 Cloud SQL 데이터베이스로 전환을 클릭합니다.
    6. 인스턴스 세부정보를 붙여넣은 후 기존 데이터베이스의 이름을 추가합니다. 다음 형식을 사용합니다. projectName:regionName:instanceName/databaseName
    7. 데이터베이스 사용자 계정의 사용자 이름과 비밀번호를 입력한 후 계속을 클릭합니다.
  2. App Maker UI에서 데이터 옆의 추가 를 클릭합니다.
  3. Google Cloud SQL(기존)을 선택합니다.
  4. 다음 형식으로 주소를 입력합니다.

    • 1세대projectName:instanceName/databaseName
    • 2세대projectName:regionName:instanceName/databaseName
  5. 데이터베이스 사용자 계정의 사용자 이름과 비밀번호를 입력합니다.

  6. 목록에서 테이블을 선택하고 가져오기를 클릭합니다. 조인 테이블을 제외하고 어떤 테이블이든 가져올 수 있습니다.

서로 관련된 두 테이블을 모두 가져오면 App Maker가 자동으로 관계를 생성합니다. App Maker는 가져온 테이블에 있는 외래 키 제약조건 또는 조인 테이블을 사용하여 Cloud SQL 데이터베이스 내의 관계를 인식합니다. 예를 들어 테이블 A에 테이블 B에 대한 외래 키가 있으면 App Maker는 자동으로 A에서 B로의 다대일 관계를 생성합니다.

Cloud SQL 데이터베이스의 스키마가 변경되면 모델을 업데이트할 수 있습니다.

  1. 설정 데이터베이스를 클릭합니다.
  2. 모델 및 관계 호환성에서 확인 버튼을 클릭합니다. 모든 Cloud SQL 모델을 데이터베이스와 일치하게 업데이트하거나 데이터베이스를 모델과 일치하게 업데이트할 수 있습니다.

모델을 업데이트할 경우 App Maker는 수정된 필드 이름, 검증 속성 및 이벤트와 같은 모델 변경사항을 유지합니다. 하지만 Cloud SQL에서 필드가 삭제되면 해당 필드가 모델에서도 삭제됩니다.

앱의 Cloud SQL 설정 업데이트

설정 데이터베이스에서는 다음 작업을 수행할 수 있습니다.

  • 기본 SQL 인스턴스로 전환합니다.
  • 인스턴스 주소를 업데이트합니다.
  • 모델 및 관계 호환성을 확인합니다.

기본 Cloud SQL 데이터베이스와 커스텀 Cloud SQL 데이터베이스 간의 전환

기본 Cloud SQL 인스턴스를 이미 설정한 조직에서는 새 모델에 이 인스턴스가 사용됩니다. 기본 Cloud SQL 데이터베이스는 앱에서 설정이 불필요하고 사용하기 쉬운 데이터베이스가 필요한 경우에 적합합니다.

기본 데이터베이스가 요구사항을 충족하지 않는다면 이를 커스텀 데이터베이스로 변환할 수 있습니다.

  1. 아직 커스텀 Cloud SQL 인스턴스를 설정하지 않았으면 먼저 이 인스턴스를 설정합니다. 새 인스턴스의 리전으로는 us-central을 선택합니다.
  2. 앱을 열고 설정 데이터베이스를 클릭합니다.
  3. 확인 버튼을 클릭하여 모델 및 관계 호환성을 확인합니다. App Maker에서 비호환성 문제가 보고될 때 데이터베이스에서 데이터를 삭제해야 계속 진행할 수 있는 경우도 있습니다.
  4. 계속할 준비가 되면 커스텀 Cloud SQL 데이터베이스로 전환 버튼을 클릭합니다.
  5. 다음 형식으로 주소를 입력합니다.

    • 1세대projectName:instanceName/databaseName
    • 2세대projectName:regionName:instanceName/databaseName
  6. 데이터베이스 사용자 계정의 사용자 이름과 비밀번호를 입력한 후 계속을 클릭합니다.

커스텀 데이터베이스로 전환한 후에 기본 데이터베이스로 다시 전환할 수도 있습니다.

Cloud SQL 레코드 작업

Cloud SQL 모델의 각 레코드는 테이블의 한 행을 나타냅니다. App Maker 레코드를 만들면 Cloud SQL 인스턴스가 해당 테이블에 행을 추가합니다.

App Maker는 일반적으로 테이블의 기본 키 열을 레코드의 키로 사용하며, 레코드 생성 후에는 기본 키 값을 변경하지 못합니다. 다음과 같이 키가 일치하지 않는 경우도 일부 있습니다.

  • 기본 키 열이 할당되어 있더라도 서버에서 newRecord()를 사용하여 생성된 레코드는 저장되기 전까지 null 키를 갖습니다.

  • 클라이언트의 초안 레코드는 저장되기 전까지 기본 키 열과 일치하지 않는 합성 키를 갖습니다.

  • 클라이언트에서 수동 저장 모드의 데이터 소스로 생성된 레코드는 저장된 후에도 기본 키 열과 일치하지 않는 합성 키를 갖습니다.

App Maker에서는 몇 가지 방법으로 기본 키를 처리할 수 있습니다.

Cloud SQL 기본 키
자연 기본 키 Cloud SQL 테이블에 자연 기본 키가 사용되는 경우 앱 모델에 이 키에 해당하는 필드가 있어야 하며 레코드를 저장하기 전에 값을 지정해야 합니다. 필수 필드의 처리 방법에 대한 자세한 내용은 다음을 참조하세요.
대리 기본 키 Cloud SQL 테이블에 대리 키가 사용되는 경우 레코드 키 앞에 기본 키를 설정할 수 있습니다. 데이터베이스가 기본 키를 제공할 수 있는 경우에는 레코드 키를 null로 두고 App Maker가 자동으로 키를 업데이트하도록 할 수도 있습니다. 클라이언트에서 수동 저장 모드의 데이터 소스로 생성된 레코드에는 이 방법을 사용할 수 없습니다.
자동 증가 기본 키

정수 기본 키의 경우 레코드가 생성될 때 Cloud SQL이 시퀀스 번호를 기본 키 값으로 자동 할당할 수 있습니다. 이 경우 사용자 또는 앱이 기본 키 필드 값을 제공하지 않아도 됩니다.

App Maker에서 이 옵션을 설정하려면 다음 안내를 따르세요.

  1. 탐색창의 데이터 섹션에서 데이터 모델을 클릭합니다.
  2. 필드 탭에서 자동으로 증가시킬 숫자 필드를 클릭합니다.
  3. 고급을 클릭하고 자동 증가를 선택합니다.
고유 ID 기본 키

App Maker는 레코드가 생성될 때 기본 키 필드에 고유 ID를 설정할 수 있습니다. 고유 ID는 12자(영문 기준) 길이이며, 사용자 또는 애플리케이션이 제공하는 것이 아니라 무작위로 생성됩니다.

예를 들어 사용자가 일부 레코드에만 액세스할 수 있는 경우 등에 테이블의 레코드 순서나 총 레코드 수에 대한 정보를 키에 노출하지 않으려면 고유 ID 개인 키를 사용하세요.

이미 숫자 개인 키가 있는 App Maker 모델에 고유 ID 개인 키를 생성하려면 다음 안내를 따르세요.

  1. 탐색창의 데이터 섹션에서 데이터 모델을 클릭하거나 새 모델을 만듭니다.
  2. 필드 탭에서 ID 필드를 클릭합니다.
  3. 고급을 클릭하고 자동 증가 체크박스의 선택을 취소합니다.
  4. 필드 추가 문자열을 클릭합니다.
  5. 기본 키로 설정을 클릭합니다.
  6. 필드의 이름을 입력합니다(예: 'uniqueID').
  7. 고급을 클릭하고 자동 고유 식별자를 선택합니다.
  8. (선택사항) ID 필드를 삭제합니다.

관계

외래 키 필드에 해당하는 필드는 서버 스크립트를 사용하여 직접 읽을 수 있습니다. 클라이언트에서는 외래 키 필드의 값과 해당 연관성을 관계로 수정할 수 있습니다. 관계에 대해 자세히 알아보세요.

Cloud SQL 뷰를 읽기 전용 데이터 모델로 가져올 수 있습니다. 뷰 기반의 모델은 조인, 집계, 하위 select를 수행하는 SQL 쿼리를 활용할 수 있습니다. 예를 들어 다음 스키마는 뷰를 사용하여 테이블의 데이터를 App Maker에 쉽게 표시할 수 있도록 집계합니다.

CREATE TABLE Orders (FruitName varchar(128), int Amount);
CREATE VIEW FruitOrders AS SELECT FruitName, sum(Amount) AS Amount FROM
    Orders GROUP BY FruitName ORDER BY FruitName;

계산된 SQL 모델

계산된 SQL 모델은 Cloud SQL 쿼리를 사용하여 데이터를 검색합니다. SQL 데이터 소스는 다른 계산된 데이터 소스와 마찬가지로 레코드를 생성, 삭제 또는 업데이트할 수 없습니다.

계산된 SQL 모델을 만들려면 다음 안내를 따르세요.

  1. App Maker에서 데이터 옆의 추가 를 클릭합니다.
  2. 계산된 SQL을 선택하고 다음을 클릭합니다.
  3. 모델 이름을 지정하고 만들기를 클릭합니다.
  4. 데이터 소스 탭으로 이동합니다. SQL 데이터 소스를 추가(또는 기본 데이터 소스를 사용)하고 SQL 쿼리 필드에 단일 쿼리를 입력합니다.

    SQL 쿼리의 속성은 다음과 같아야 합니다.

    • 쿼리에 LIMIT 또는 OFFSET 절이 없어야 합니다. 대신 App Maker가 데이터 소스의 pageSizepageIndex에 따라 LIMIT 및 OFFSET 절을 추가합니다.
    • SQL 쿼리 출력 열의 이름 및 유형은 계산된 모델의 이름 및 유형과 일치해야 합니다.
    • SQL 쿼리에는 :Param과 같이 콜론으로 시작하는 매개변수만 포함될 수 있습니다. 이러한 매개변수는 데이터 소스에 적용된 커스텀 속성의 이름 및 유형과 일치해야 합니다.

예를 들어 HR 앱에서 각 부서 내의 직원 중 특정 연령을 초과하는 직원의 수를 표시해야 하고, AgeDept 필드가 있는 Cloud SQL 모델 Employee가 앱에 포함되어 있다고 가정해 보겠습니다.

필터링된 데이터를 표시하기 위해 이 앱은 DeptNameCount라는 두 필드가 있는 계산된 모델 EmployeeCount를 사용합니다. 이 계산된 모델은 MinAge라는 number 유형의 커스텀 속성이 있는 SQL 데이터 소스를 포함하며 다음과 같은 쿼리를 사용합니다.

SELECT Dept AS DeptName, COUNT(*) AS Count FROM Employee WHERE Age > :MinAge GROUP BY Dept

목록 매개변수는 SQL에서 괄호로 묶인 매개변수 목록으로 변환됩니다. 예를 들어 매개변수 목록의 요소와 이름이 일치하는 부서의 ID를 선택하려면 다음과 같은 쿼리를 작성하면 됩니다.

SELECT id from Departments WHERE Name in :PossibleNames

PossibleNames 매개변수는 (?, ?, ?, ...)로 변환되며, 이 매개변수 값의 요소는 SQL 자리표시자에 사용됩니다.

시간 기반 매개변수의 경우 시간대를 설정해야 합니다.

관계 필터링

Cloud SQL은 데이터 결합서버 스크립팅에서 관련 모델의 필드를 기준으로 필터링할 수 있는 유일한 모델 유형입니다.

관계 필터링에 대해 자세히 알아보세요.

시간대

Cloud SQL 인스턴스와 App Maker의 시간대가 서로 다를 때도 있습니다. 이로 인해 데이터베이스에 원치 않는 날짜 및 시간이 기록될 수 있습니다. 다음 표를 검토하여 날짜 필드 유형을 적절하게 설정하세요.

날짜 필드 유형의 시간대 처리
Cloud SQL 모델

다음과 같이 필요에 따라 날짜 필드 유형을 설정하세요.

  1. 모델의 필드 탭을 엽니다.
  2. 날짜 필드를 클릭한 다음 고급을 클릭하여 날짜 유형을 설정합니다.
    • DATE 또는 DATETIME—시간대가 없는 필드에 사용합니다. App Maker는 시간을 앱 설정에 지정된 App Maker 서버의 시간대로 변환한 후에 데이터베이스에 기록합니다.
    • TIMESTAMP—시간대가 있는 필드에 사용합니다. App Maker는 사용자의 시간대를 저장하며, 날짜는 Unix epoch를 기준으로 한 상대 날짜로 Cloud SQL에 기록됩니다.

App Maker는 데이터를 표시할 때 이 두 유형의 날짜를 브라우저의 시간대로 변환합니다.

계산된 SQL 모델 계산된 SQL 모델에 날짜 유형의 필드를 추가하면 필드가 DATETIME 유형으로 추가됩니다.
계산된 SQL 데이터 소스 쿼리 매개변수

다음과 같이 필요에 따라 날짜 필드 유형을 설정하세요.

  1. 계산된 SQL 모델의 데이터 소스 탭을 엽니다.
  2. 데이터 소스를 클릭한 후 매개변수 추가를 클릭합니다.
  3. 날짜 매개변수에 대해 데이터 SQL 유형 드롭다운 목록을 클릭하고 유형을 선택합니다.
    • DATE 또는 DATETIME—시간대가 없는 매개변수에 사용합니다. 쿼리에서 DATE 또는 DATETIME 필드를 사용하면 App Maker 서버는 해당 값이 쿼리에 사용되기 전에 값을 앱 사용자의 시간대에서 서버의 시간대로 변환합니다.

      예를 들어 PST(UTC-8) 시간대의 사용자가 2018년 1월 1일 오전 9시 이전에 생성 된 레코드를 쿼리할 때 App Maker 서버의 시간대가 CT(UTC-6)이면 쿼리는 2018년 1월 1일 오전 11시 이전에 생성된 레코드를 검색합니다.

    • TIMESTAMP—시간대가 있는 매개변수에 사용합니다. App Maker는 해당 시간 값이 쿼리에 사용되기 전에 시간을 UTC로 변환합니다. 앱과 데이터베이스의 시간대가 동일한 경우에만 날짜가 올바르게 처리되므로 TIMESTAMP 유형의 쿼리 매개변수는 사용하지 않는 것이 좋습니다.

제한 및 한도

  • Cloud SQL 테이블의 기본 키 열이 0개이거나 여러 개이면 App Maker가 기본 키 열을 수정하거나 기본 키 열에 대한 관계를 만들 수 없습니다.

  • BIGINT는 나타내는 숫자 범위가 너무 커서 자바스크립트 숫자로 나타낼 수 없기 때문에 App Maker는 BIGINT 값을 문자열로 나타냅니다.

  • App Maker는 BLOB, CLOB, 기타 바이너리 유형과 같은 일부 Cloud SQL 열 유형을 가져올 수 없습니다. 이러한 열 유형을 사용하는 모델을 가져올 수는 있지만 이러한 열을 읽거나 쓸 수는 없습니다. 이러한 열이 null이 아닌 값으로 표시되어 있으면 전체 데이터 모델의 다른 열은 모두 읽기 전용입니다.

  • App Maker는 Cloud SQL 모델에 대해 조인, 집계, 하위 select를 수행하는 쿼리를 표현할 수 없습니다. 대신 SQL 뷰를 모델로 가져오거나 계산된 모델의 SQL 데이터 소스를 사용하세요.

  • 앱은 키워드 기준 검색을 지원하지 않습니다. 이 문제를 해결하려면 contains 연산자를 사용하여 전체 텍스트를 시뮬레이션하는 커스텀 쿼리를 만드세요. 예를 들어 NameDepartment 필드가 있는 Employee 모델의 경우 (Name contains? :Keywords) OR (Department contains? :Keywords) 쿼리를 사용하고 Keywords 매개변수를 텍스트 필드의 value 속성에 결합하세요.