2022년의 첫 번째 주요 업데이트인 DataGrip 2022.1이 출시되었습니다. 이 업데이트에는 사용 편의성을 높이는 다양한 개선 사항이 가득합니다. 어떤 내용이 있는지 지금부터 살펴보겠습니다.
이 기능은 단연 이번 릴리스의 하이라이트입니다. 이제 여러 테이블을 선택하고 다른 스키마에 복사할 수 있습니다.
복사할 테이블을 선택하고 F5 키를 눌러 내보내기 대화상자를 엽니다.
단일 테이블을 내보낼 때와 마찬가지로 열을 매핑할 뿐만 아니라 새 테이블의 DDL을 확인하고 변경할 수도 있습니다.
아시다시피 DataGrip은 교차 DBMS 내보내기를 지원합니다. 즉, 대상 스키마는 프로젝트의 모든 데이터베이스에 속할 수 있습니다. PostgreSQL 데이터베이스에서 SQL Server로 모든 테이블을 복사하기가 정말 간편해졌습니다.
새 테이블 대신 기존 테이블을 대상으로 지정할 수도 있습니다. 그러면 원본 테이블의 데이터가 대상 테이블에 추가됩니다.
UUID 및 Text(텍스트)의 두 가지 옵션이 포함된 새로운 설정인 Automatically detect binary values(2진 값 자동 탐지)가 추가되었습니다. 이제 UUID 탐지를 비활성화할 수 있습니다.
MongoDB 컬렉션에 대한 쿼리 결과를 콘솔에서 바로 편집할 수 있습니다. 이는 .find() 뒤에 sort() 또는 limit() 같은 메서드가 와도 가능합니다.
Transact SQL에서 여러 구문이 동시에 실행되는 경우 일괄 처리 모드로 실행됩니다. 이전에는 이로 인해 각 쿼리에 대한 결과를 에디터에 표시하기 어려웠지만 이제는 DataGrip이 이러한 상황을 잘 처리합니다.
또한 DataGrip은 이제 일괄 처리 모드에서 쿼리를 실행할 때 모든 SQLCMD 구문을 제거합니다(자세한 내용은 DBE-14920 참조).
DEFAULT
인 테이블에 대한 업데이트 쿼리가 이제 올바르게 생성됩니다. 때로 내부 검사에는 특별한 사용자에게 부여되는 특별한 권한이 필요합니다. 이제 내부 검사를 위해 전용 자격 증명을 사용할 수 있습니다. 이렇게 하려면 먼저 Options(옵션) 탭에서 전용 세션 템플릿을 만듭니다.
그런 다음 Introspection(내부 검사) 섹션의 Use session template(세션 템플릿 사용) 필드에서 이름을 선택하여 내부 검사에 이 템플릿을 사용합니다.
이제 데이터베이스의 한 객체를 다른 모든 객체와 독립적으로 새로 고침할 수 있습니다.
새로운 Introspection levels(내부 검사 수준) 기능을 사용하는 경우 특히 유용할 수 있습니다. 단일 객체의 소스 코드를 확인해야 하는 경우 데이터베이스 탐색기에서 Refresh Object(객체 새로고침) 버튼을 클릭하면 쉽게 볼 수 있습니다.
또한 객체의 소스 에디터를 열면 DataGrip에서 선택한 객체를 내부 검사할 수 있는 옵션을 제공합니다.
H2 버전 2.x에 대한 지원을 추가했습니다. 다음은 변경 사항을 정리한 목록입니다.
ARRAY
및 ROW
와 관련되어 있었습니다. 이제 YugabyteDB용 JDBC 드라이버가 배포되어 클릭 한 번으로 YugabyteDB 데이터 소스를 생성할 수 있습니다.
Modify Table(테이블 수정) 창을 조금 손보고 있습니다. 새 버전에는 내부 검사 프로퍼티를 기반으로 완벽하게 생성된 UI가 도입되어 다양한 데이터베이스 관련 매개변수를 사용할 수 있습니다.
현재는 업데이트의 일부만 공개되지만 이 상태로도 충분히 유용합니다. 새로운 Modify Table(테이블 수정) 창을 사용하면 이전에는 불가능했던 열 검사 제약 조건을 추가 및 편집할 수 있습니다. 또한 이제 DataGrip에서 내부 검사하는 테이블 및 열의 모든 프로퍼티를 편집할 수 있습니다.
새로운 열 UI에는 많은 사용자들이 불편해 했던 축소 또는 확장 기능이 없기 때문에 긍정적인 호응을 얻을 것으로 생각합니다.
AUTO_INCREMENT
속성을 수정할 수 있습니다. 객체 또는 스키마를 비교할 때 소스와 대상을 스왑할 수 있는 버튼을 도입했습니다.
최근 도입된 데이터베이스 Diff 뷰어 창의 품질을 지속적으로 개선하고 있습니다. 일부 수정 사항은 버전 2021.3에서 릴리스되었지만 일부는 다음을 포함하여 2022.1에 새로 추가됩니다.
편리한 새 인텐션인 Convert To Subquery(하위 쿼리로 변환)를 도입했습니다. 더 이상 Surround Live Template(라이브 템플릿 둘러싸기)을 사용하여 하위 쿼리를 변환할 필요가 없습니다. 사실, 쿼리를 선택하는 것조차 필요하지 않습니다. Alt+Enter | Convert To Subquery(하위 쿼리로 변환)를 누르기만 하면 됩니다.
PostgreSQL 14에 다중 범위 타입이 도입됨에 따라 기본 제공되는 이러한 타입에 대한 지원을 추가했습니다.
사용자 지정 다중 범위 타입은 향후 지원될 예정입니다.
ROWS FROM
구문에 대한 지원이 추가되었습니다. JSONB
구문이 잘못 삽입되는 문제를 수정했습니다. BEGIN ATOMIC
에 대한 지원이 추가되었습니다. ALTER MATERIALIZED VIEW
에 대한 지원이 추가되었습니다. USING INDEX ENABLE
구문에 대한 지원이 추가되었습니다. CREATE MATERIALIZED VIEW LOG
구문에서 열 확인이 수정되었습니다. CREATE STAGE
구문의 WITH TAG
옵션에 대한 지원을 추가했습니다. EXECUTE
구문에 대한 지원을 추가했습니다. JSON
이 이제 구문 내에서 올바르게 강조 표시됩니다. QUALIFY
가 이제 지원됩니다. UNNEST
열이 이제 지원됩니다. UNION DISTINCT
가 이제 지원됩니다. 이전에는 Cancel statement(구문 취소) 버튼을 여러 번 클릭하면 쿼리가 종료된 것처럼 보여도 실제로는 데이터베이스에서 요청이 계속 실행되었습니다.
이 동작의 이면에는 몇 가지 까다로운 논리가 있었습니다. 첫 번째 클릭할 때는 DataGrip이 데이터베이스에 취소 요청을 보내고 두 번째 클릭할 때는 데이터 소스에 대한 모든 연결을 종료하기 위해 JDBC 드라이버 프로세스가 취소됩니다(이를 데이터 소스 비활성화라고 함). 그러나 실제로 취소가 완료되지 않고 연결이 끊어지기 때문에 결과적으로 DataGrip은 두 번째 취소 요청에 대한 오류를 수신합니다.
이제 이 취소 논리를 더 간단하게 만들어 요청이 취소 대상임을 분명히 했습니다.
경고 없이 데이터 소스를 비활성화하면 동시 진행되는 일부 프로세스가 위험해질 가능성이 있으므로, 이러한 비활성화를 중단했습니다. 따라서 Cancel(취소) 아이콘을 두 번째로 클릭하면 DataGrip은 원격 프로세스를 정말로 종료할 것인지 아니면 계속 기다릴 것인지 묻습니다. 데이터 소스를 비활성화하도록 선택하면 DataGrip에 대한 쿼리가 중지되지만 데이터베이스에서는 계속 실행됩니다.
취소 중인 유휴 상태가 10초간 이어지면, 데이터 소스를 비활성화할 수 있는 옵션이 제공됩니다.
쿼리가 취소되면 왼쪽에 '금지' 기호와 유사한 여백 아이콘이 나타납니다.
이전에는 연결을 생성하는 동안 요청을 중단하려고 하면 데이터 소스가 비활성화되었습니다.
이제 요청 실행뿐만 아니라 연결 생성도 중단할 수 있습니다. 이는 콘솔에서 연결을 생성하는 첫 번째 쿼리와 특히 관련이 있습니다.
이제 데이터 소스를 비활성화하지 않고 연결 생성 프로세스를 중지할 수 있습니다. 연결이 생성되는 동안 Cancel(취소) 버튼을 클릭하면 연결이 중지되고 연결 취소됨 메시지가 표시됩니다.
쿼리 콘솔의 쿼리 외에도 관련이 있습니다. 예를 들어, 내부 검사를 시작하기 전에 연결을 생성하는 경우 내부 검사를 중단하면 데이터 소스를 비활성화하지 않아도 연결 생성이 취소됩니다.
Database(데이터베이스) 섹션에서 Preferences(환경 설정)의 설정 구조는 DataGrip의 첫 번째 버전 이후로 변경되지 않았습니다. 하지만 이제는 이 구조를 업데이트하여 섹션의 사용 편의성을 개선해야 할 때라고 판단했습니다. 다음과 같이 바꿨습니다.
Track databases/schemas creation and deletion(데이터베이스/스키마 생성 및 삭제 추적) 설정이 General(일반) 섹션에서 Data Source Properties(데이터 소스 프로퍼티) | Options(옵션)로 이동되었으며, 이제 특정 데이터 소스를 참조합니다. 이 설정은 쿼리 콘솔에서 스키마를 생성하거나 삭제한 후 스키마 목록을 업데이트해야 하는지 여부를 식별합니다.
다른 설정은 여전히 전역으로 적용되지만 더 적절한 섹션에 포함됩니다.
이 업데이트의 일부로 다음 설정이 디폴트 값으로 재설정됩니다.
이제 에디터 탭 사이에 작업 공간을 너비가 같도록 분할할 수 있습니다. 이렇게 설정하려면 Settings(설정)/Preferences(환경 설정) | Advanced Settings(고급 설정) | Editor Tabs(에디터 탭) | Equalize proportions in nested splits(중첩된 분할의 비율을 동일하게 변경)로 이동합니다.
이제 다이어그램을 yEd .graphml, JGraph .drawio, Graphviz .dot, 위치 정보 포함 Graphviz .dot, Mermaid .md, Plantuml 및 IDEA .uml 파일로 내보낼 수 있어 타사 도구와 호환성이 개선되었습니다.