Novidades no DataGrip 2021.2

O DataGrip 2021.2 chegou! Esta é a terceira grande atualização de 2021 e vem com vários aprimoramentos. Vejamos o que ele tem a oferecer!

Fonte de dados DDL

A geração de fontes de dados DDL é outra etapa no nosso desenvolvimento em longo prazo de um controle de versão de banco de dados contínuo. Com esse recurso, você pode manter seus arquivos DDL em um sistema VCS e gerá-los novamente sempre que sua estrutura de banco de dados for atualizada.

Agora, é possível gerar uma fonte de dados DDL com base em uma real. Os arquivos DDL são criados localmente, e a nova fonte de dados se baseia neles. Dessa maneira, você sempre poderá gerar novamente esses arquivos e atualizar a fonte de dados DDL.

Vejamos como isso funciona.

Adicionamos um novo item de menu, Dump to DDL data source, ao menu de contexto SQL Scripts.

Quando a caixa de diálogo for aberta, você precisará especificar a pasta na qual os arquivos recém-criados serão armazenados.

Na guia Generation, especifique como esses arquivos DDL devem ser gerados.

Por fim, clique em OK para criar a fonte de dados DDL.

A pasta com os novos arquivos é automaticamente anexada ao seu projeto.

Criando objetos

Na v2021.2, você pode criar objetos em uma fonte de dados DDL por meio da UI. Os arquivos correspondentes serão criados localmente.

Diagramas

Os seguintes recursos importantes foram adicionados a diagramas:

  • Comentários de tabela agora estão visíveis
  • Cores de tabelas são exibidas no diagrama
  • Você pode desativar merges de borda

Melhorias de qualidade:

DBE-13057: melhoramos o algoritmo que desenha diagramas e, portanto, os nomes dos objetos não se sobrepõem mais às linhas de relação.

DBE-13264: as anotações não são mais perdidas ao salvar.

Editor de código

Pesquisa em Local History

Se você estiver procurando uma revisão específica em Local History, poderá usar a pesquisa de texto para obter ajuda.

Local History para fontes

Agora, o DataGrip controla alterações locais para códigos fonte de objetos. Isso pode ser especialmente útil ao trabalhar com procedures e funções.

Como os fontes de cada objeto são armazenadas em um arquivo, todas as alterações externas também são consideradas alterações locais. Quando você faz a introspecção do seu banco de dados, esse arquivo é atualizado.

Você pode usar o pop-up Local History para controlar quaisquer alterações em uma função ou procedure. Observe que todas as alterações externas serão consideradas uma só alteração se acontecerem no intervalo de duas execuções da introspecção.

Os nomes de guias longos estão de volta

Depois de recebermos alguns comentários de usuários que não gostaram dos nomes de guias abreviados, introduzimos a opção de alterá-los novamente. Se preferir nomes de guia longos, desmarque a opção Shorten Tab Titles.

Encolhendo uma seleção

Ação Maximize Editor/Normalize Splits

Por muito tempo, tivemos a ação Hide All Tool Windows, que podia ser chamada com um clique duplo em uma guia ou pressionando Shift+Ctrl+F12. Muitos usuários a tratavam como uma ação Maximize Editor, e ela funcionava como tal.

Depois que introduzimos o mecanismo de divisão, a situação ficou mais complicada. Essa ação deve ocultar as guias divididas ou não? Então, fizemos o seguinte:

  • A ação Hide All Tool Windows não oculta mais as guias divididas.
  • A nova ação Maximize Editor/Normalize Splits maximiza a guia atual, mas não oculta as janelas de ferramentas.

Preenchimento de código

Escopo de complementação

Agora, é possível definir quais objetos devem ser apresentados na lista de complementação de código: objetos apenas do alternador de esquemas (ou do caminho de pesquisa), do escopo atual ou de todos os esquemas.

  • Suggest only search path objects: apenas objetos dos esquemas escolhidos no alternador de esquemas são sugeridos.
  • Suggest objects from current scope (configuração padrão): a lista será preenchida com os objetos que o DataGrip pode resolver corretamente sem qualificação – o conjunto de objetos do alternador de esquemas, instruções USE e o esquema padrão.
  • Suggest objects from all available schemas: a lista conterá todos os objetos de todos os esquemas disponíveis.

Isso também pode ser gerenciado pela complementação inteligente. Para chamá-la, pressione a tecla de atalho de complementação (geralmente Ctrl+Espaço) várias vezes.

  • Pressionada uma vez ou chamada automaticamente: conforme descrito acima.
  • Pressionada duas vezes: todos os esquemas, exceto aqueles desativados para a introspecção.
  • Pressionada três vezes: objetos de todos os esquemas e bancos de dados disponíveis.

Complementação de campos e operadores MongoDB

Campos e operadores agora estão disponíveis na complementação de código para o MongoDB. Leia esta postagem para obter mais detalhes.

Complementação para sinônimos entre bancos de dados SQL Server

A complementação de código para sinônimos entre bancos de dados está disponível.

Complementação de INSERT e colunas computadas

Colunas computadas são levadas em consideração ao complementar instruções INSERT – elas não são incluídas no item sugerido.

Melhorias de qualidade

DBE-10515, DBE-2212: objetos do esquema do contexto atual têm prioridade mais alta na lista de complementação de código.

DBE-7781, DBE-10650: o alias automático aparece apenas quando necessário.

DBE-12018: a qualificação da tabela na complementação de JOIN funciona conforme esperado.

DBE-12479: a prioridade de ASC/DESC dentro de uma cláusula ORDER BY foi elevada.

DBE-13341: a complementação do PostgreSQL em instruções GRANT/REVOKE funciona conforme esperado.

Realce de código

Suporte para CTE recursiva Redshift

Consultas que usam expressões de tabela comuns recursivas agora são devidamente realçadas e podem ser executadas sem serem selecionadas.

Melhor suporte para CTE ClickHouse

Agora há suporte para a sintaxe de expressões de tabela comuns quando o nome CTE vem antes da palavra-chave AS.

Melhorias de qualidade

DBE-3759, DBE-13364, DBE-13365: inspeções em busca de agregados funcionam com mais precisão.

DBE-10782: ClickHouse - Chega de alertas falsos-positivos da inspeção que relata argumentos não nulos em COALESCE.

DBE-13188: campos de tipo de registro Oracle PL/SQL são resolvidos corretamente.

DBE-10550: aliases de tabelas do DB2 são resolvidos corretamente.

Navegador de banco de dados

Pastas separadas para funções e procedimentos

Se você ativar a opção Separate Procedures and Function nas configurações do explorador de banco de dados (o ícone de engrenagem), isso terá efeito imediato.

Para o SQL Server, há nós dedicados para funções escalares e de tabela. Para o PostgreSQL, há um nó para funções de gatilho.

Nós separados para gatilhos, chaves e índices

Uma nova opção de árvore de banco de dados, Show Constraints and Triggers in the Schema, atribui a gatilhos, chaves e índices seus próprios nós individuais no explorador de banco de dados.

 

Por que isso é útil?

  • Você pode encontrar um objeto dentro de um esquema usando a pesquisa rápida.
  • Você pode ver as colunas logo abaixo do nó da tabela. Para fazer isso, certifique-se de que a opção Show Empty Groups esteja desativada.

Ordem de classificação natural para objetos de banco de dados

Se você desativar a opção Sort Alphabetically nas configurações do explorador de banco de dados, a classificação natural para objetos será aplicada.

Esta é a aparência quando a opção Sort Alphabetically está desativada:

Esta é a aparência quando a opção Sort Alphabetically está desativada:

...e quando Sort Alphabetically está ativada:

Introspecção

Introspecção nativa CockroachDB

O CockroachDB terá suporte total nesta versão. O DataGrip não dependerá mais da introspecção baseada em JDBC, mas usará a nativa em vez disso.

 

Ela é muito mais rápida que a introspecção baseada em JDBC. Além disso, role, deftype e check constraint não podiam ser incluídos na introspecção na versão anterior. A lista completa de objetos que agora são incluídos na introspecção inclui database, role, privilege, schema, sequence, deftype, table, view, mat view, index, column e constraints. A ausência de introspecção para partitions é um problema conhecido.

Chaves estrangeiras virtuais para pg_catalog PostgreSQL

Há algum tempo, anunciamos um mecanismo para criar chaves estrangeiras virtuais. Agora, usamos esse mecanismo para cobrir pg_catalog com chaves estrangeiras virtuais. Isso traz algumas melhorias.

Em primeiro lugar, a complementação de JOIN ajuda você a consultar tabelas do sistema:

Em segundo lugar, você pode navegar por dados em tabelas do sistema:

Tablespaces Oracle

Adicionamos suporte para tablespaces, arquivos de dados e arquivos temporários. Agora, eles são incluídos na introspecção:

 

Eles também estão incluídos na geração de DDL:

Servidores vinculados SQL Server

Ainda não há suporte total, pois metadados não estão disponíveis para objetos em servidores vinculados. Servidores vinculados são mostrados no explorador de banco de dados, e o DDL para sua criação pode ser gerado.

Editor de dados

Encolhendo uma seleção

Templates dinâmicos de contexto do editor de dados

Introduzidos na versão anterior, os templates dinâmicos de contexto agora funcionam a partir do editor de dados. Se você está trabalhando com uma tabela e deseja consultá-la, pode fazer isso facilmente com a ajuda da ação SQL Scripts.

Opção para classificação aditiva

Recentemente, introduzimos Alt+Clique para classificação aditiva. Porém, se você prefere usar Clique, pode personalizar esse comportamento:

Encolhendo uma seleção

Adicionar/excluir coluna MongoDB

Agora, você pode adicionar colunas às coleções do MongoDB. Essa ação permite adicionar um novo campo a qualquer documento de uma coleção.

 

Delete column excluirá os dados não apenas da página que está sendo exibida, mas também de toda a coleção.

Encolhendo uma seleção

Adicionar/renomear colunas em arquivos CSV

Com a ajuda do editor de dados da UI, agora você pode adicionar e remover colunas em arquivos CSV.

Copiar consulta para console

Ao trabalhar em um editor de dados, às vezes você pode usar cláusulas complicadas em campos WHERE e ORDER BY. Se quiser continuar trabalhando com a consulta resultante, use uma nova ação, Copy Query to Console, sob o ícone de engrenagem. Ela abre a consulta no console padrão.

Encolhendo uma seleção

Não há mais a opção First row na navegação por chaves estrangeiras

Para tornar a navegação mais rápida, removemos a opção First row. Nenhum pop-up será exibido, e você acessará a tabela que mostra todas as linhas referenciantes ou referenciadas.

Qualificação em navegação por chaves estrangeiras

Se você tiver chaves estrangeiras apontando para objetos em outro esquema, e esses objetos tiverem os mesmos nomes, eles serão exibidos como qualificados na UI de navegação de chaves estrangeiras.

Melhorias de qualidade

DBE-12545: o tamanho do campo ORDER BY é salvo.

DBE-13055: o fuso horário é sempre mostrado para valores com fuso horário.

DBE-9814: valores Oracle do tipo DATE não exibem a hora se nenhuma hora for definida.

DBE-12679: Oracle - A filtragem pelo campo DATE é possível.

DBE-12716: DB2 - A filtragem por binary, blob, char for bit data e varchar for bit data é possível.

Importação/exportação

Link de tabela após importação

Quando você termina uma importação, um link para a nova tabela aparece nas notificações.

Melhorias de qualidade

DBE-13259: a exportação de campos numéricos não falhará mais se houver valores não numéricos.

DBE-11370, DBE-13139, DBE-12536: a importação tornou-se mais rápida para PostgreSQL, Redshift, Exasol, Hive, Clickhouse, DB2 e HSQL.

Navegação

Comportamento da tecla Enter na barra de navegação

O comportamento da barra de navegação agora é mais direto: a tecla Enter sempre expande o nó.

 

Antes, a tecla Enter abria dados para tabelas e abria consoles para fontes de dados.

Se quiser navegar a partir do objeto na barra de navegação em vez de abrir seu nó, use estes atalhos de navegação:

  • Abrir DDL: Ctrl+B
  • Abrir dados: F4
  • Selecione na árvore do banco de dados: Alt+Shift+B

Assinaturas no pop-up Go To

Agora, quando você está procurando uma função, um procedimento ou um operador, o DataGrip mostra a assinatura na janela Go To. Isso ajuda quando você usa muito o recurso de sobrecarga.

Geral

UI traduzida

Começando nesta versão, você pode aproveitar a UI do DataGrip totalmente traduzida nos idiomas chinês, coreano e japonês. A tradução está disponível como plug-ins de pacote de idiomas não inclusos, que podem ser facilmente instalados no DataGrip. Mais de 1,5 milhões de usuários começaram a usar a versão EAP parcialmente traduzida dos nossos pacotes de idiomas. Agora, você pode aproveitar a experiência completa de tradução!

Novo local para projetos

No DataGrip, os projetos agora estão localizados por padrão no mesmo lugar de todos os outros IDEs baseados em IntelliJ: na pasta pessoal do usuário, dentro da subpasta DataGripProjects.

 

Seu projeto no DataGrip é um complexo das suas fontes de dados, arquivos de console e trabalho e pastas anexadas. Antes, esses elementos eram armazenados na pasta configuration e, por isso, todas as vezes que você atualizava seu IDE, os projetos eram copiados junto com as configurações do IDE.

Às vezes, isso fazia com que a lista de fontes de dados ficasse vazia. Esse problema foi resolvido, e agora o DataGrip se comporta da maneira consistente com outros IDEs.

Devido a erros na migração do projeto, os usuários que usaram a primeira compilação EAP podem ter perdido seus Favoritos, Marcadores, Configurações de Execução ou dados sobre chaves externas virtuais. Para restaurá-los, migre da versão anterior novamente. Os detalhes estão descritos aqui: DBE-13410.

Configurações

Botões para voltar e avançar

Esses botões facilitam a navegação na janela Settings, evitando que você se perca dentro dela.

Configurações avançadas

Adicionamos Advanced Settings como um novo nó em Preferences/Settings. Ele contém algumas opções específicas para cada caso de uso, convenientemente agrupadas pela ferramenta IDE. A maioria das configurações foi transferida do Registro, embora algumas delas sejam novas.

Algumas configurações dignas de nota:

  • Margem esquerda no Modo sem distração.
  • Capacidade de definir o cursor para se mover para baixo depois de usar a ação Comment with Line Comment.
  • Personalização do comportamento de clique duplo em uma guia.

Ação Show scratch files

Uma nova ação Show Scratch Files (disponível em Find Action: Cmd+Shift+A) mostra uma lista de esboços com snippets em um pop-up. Ela tem a mesma UI que o pop-up Recent Locations, com pesquisa rápida e exclusão.

Gerenciando os pop-ups da janela de ferramentas Services

Quando uma consulta não retorna dados, não há necessidade de a janela de ferramentas Services aparecer se ela já está oculta. Agora, você pode definir quais operações fazem a janela de ferramentas Services aparecer por conta própria.

Melhorias de qualidade

DBE-12079: PostgreSQL - reformulamos o introspector. Para você, o principal efeito do novo introspector é que não há mais duplicatas de objetos.

DBE-13164: não ocorrem mais congelamentos ao digitar instruções JOIN junto com o uso de chaves estrangeiras virtuais.

DBE-194931: arquivos de trabalho vazios agora são removidos automaticamente.