O DataGrip 2021.3 chegou! Esta é a terceira grande atualização de 2021 e vem com vários aprimoramentos. Vejamos o que ele tem a oferecer!
Adicionamos a capacidade de mostrar uma visualização agregada (Aggregate) para um intervalo de células. Este é um recurso aguardado há muito tempo que ajudará você a gerenciar os seus dados e evitará que você tenha que criar consultas adicionais! Isto torna o editor de dados mais poderoso e fácil de usar, deixando-o um passo mais próximo das planilhas do Excel e do Google.
Selecione o intervalo de células para o qual você deseja a visualização. Depois, clique com o botão direito e selecione Show Aggregate View.
Algumas informações rápidas:
É mostrado um valor de aggregate na barra de status e você pode escolher qual valor (soma, média, mediana, mínimo, máximo, etc.) será mostrado ali.
Teclar F4 em um nó de qualquer esquema mostra uma visualização em tabela do conteúdo daquele nó. Por exemplo, você pode obter uma visualização em tabela de todas as tabelas do seu esquema:
Ou você pode obter uma visualização em tabela das colunas de uma tabela:
Você pode usar essa visualização para ocultar ou mostrar colunas, exportar os dados para muitos formatos e fazer buscas de texto. Mais importante ainda, as ações de navegação a seguir também funcionam com esse recurso:
Se você dividir a janela do editor e abrir de novo a mesma tabela, as duas janelas do editor serão agora completamente independentes. Você poderá então configurar opções diferentes de filtros e ordenação para comparar e trabalhar com os dados. Antes, os filtros e a ordenação eram sincronizados, o que não era ideal.
Você pode escolher uma fonte dedicada para exibir os dados em Database | Data views | Use custom font.
No editor de dados, agora você pode selecionar vários valores ao mesmo tempo e navegar até os dados correspondentes.
Você pode definir o método-padrão para ordenar tabelas via ORDER BY ou client-side. Este último não executa nenhuma nova consulta e ordena apenas a página atual. Essa configuração pode ser encontrada em Database | Data views | Sorting | Sort via ORDER BY.
Dados de 16 bytes agora são exibidos como UUID por default. Você também pode personalizar como dados binários são exibidos na coluna do editor de dados.
filter {}
e sort {}
no MongoDB A complementação de código agora está disponível ao filtrar dados em coleções do MongoDB.
Esta versão é uma continuação lógica da anterior, que introduziu a capacidade de gerar uma fonte de dados DDL com base numa fonte de dados real. Agora, esse workflow tem suporte total. Você pode:
Apenas como lembrete, uma fonte de dados DDL é uma fonte de dados virtual cujo esquema é baseado num conjunto de scripts de SQL. Armazenar esses arquivos no Sistema de Controle de Versões (VCS) é uma maneira de manter o seu banco de dados sob o VCS.
Há uma nova aba DDL mappings nas propriedades de configuração dos dados. Nessa aba, você pode definir qual fonte de dados real será mapeada para cada fonte de dados DDL.
Se você quiser saber mais sobre como esses novos recursos podem ajudar você no seu fluxo diário de VCS, leia este artigo.
Para comparar e sincronizar sua fonte de dados de DDL com a fonte de dados real, use o menu de contexto e selecione Apply from... ou Dump to... no submenu DDL Mappings.
Essa novíssima janela tem uma interface de usuário melhor e mostra claramente no painel direito qual resultado você obterá depois de realizar a sincronização.
A legenda do painel direito mostra o que significam as cores em relação ao resultado em potencial:
A aba Script preview mostra o script de resultado, que pode ser aberto num novo console ou executado a partir deste diálogo. O resultado desse script é aplicar alterações para fazer com que o banco de dados à direita (o destino) seja uma cópia do banco de dados à esquerda (a origem).
Além da aba Script preview, há mais duas abas no painel inferior: Object Properties Diff e DDL Diff. Elas mostram as diferenças entre as versões específicas do objeto nos bancos de dados de origem e de destino.
Só um lembrete: se você quiser apenas comparar dois esquemas ou objetos, selecione-os e tecle Ctrl + D.
Importante! O visualizador de diff ainda está em desenvolvimento. Como cada banco de dados tem seus próprios recursos específicos, alguns objetos podem ser exibidos como diferentes quando, na verdade, são idênticos. Isto pode acontecer por causa de type aliases ou por omitir as propriedades default durante a geração. Se você encontrar esse bug, por favor relate-o no nosso rastreador.
Todas as ações em arquivos também estão disponíveis nos elementos da fonte de dados DDL. Por exemplo, você pode excluir, copiar ou submeter versões de arquivos relacionados aos elementos do esquema a partir do explorador de banco de dados.
Se esta opção estiver ativa, sua fonte de dados DDL será automaticamente atualizada com quaisquer alterações nos arquivos correspondentes. Este já era o comportamento default, mas agora você tem a opção de desativá-lo.
Se você o desativar, as alterações nos arquivos de origem não serão refletidas automaticamente na fonte de dados DDL. Nesse caso, você precisará clicar em Refresh para aplicar essas alterações.
No painel Default schemas/databases, você pode definir os nomes do banco de dados e dos esquemas que serão exibidos na fonte de dados DDL. Os scripts DDL geralmente não contêm nomes. Nesses casos, serão usados nomes temporários por default para os bancos de dados e esquemas.
Se qualquer valor, com exceção de User e Password, começar ou terminar com um espaço, o DataGrip alertará você sobre isso quando você clicar em Test Connection.
O LocalDB do SQL Server tem o seu próprio driver dedicado na lista de drivers. Isto significa que ele tem um tipo separado de fonte de dados que deve ser usado para o LocalDB. Isto traz os seguintes benefícios:
Agora é possível usar autenticação Kerberos no Oracle e no SQL Server. Você precisa obter um ticket inicial de concessão de outros tickets para o principal, usando o comando kinit, que o DataGrip usará quando você selecionar a opção Kerberos.
Esta nova opção na aba Options permite que você ative o DBMS_OUTPUT como default para novas sessões.
Adicionamos um botão More Options, para quando você precisar configurar algo incomum em uma conexão. As opções atualmente disponíveis incluem a capacidade de adicionar campos Schema e Role em conexões Snowflake e dois itens de menu para configurar o SSH e o SSL de modo a tornar mais fácil a descoberta desses protocolos.
A aba Advanced agora inclui uma lista Expert options. Além da opção de ativar a introspecção com o JDBC (por favor, contate o nosso suporte antes de usar isso!), estão disponíveis as seguintes opções específicas de banco de dados:
Alguns usuários do Oracle têm tido um problema com a introspecção no DataGrip, que demorava demais se houvesse muitos bancos de dados e esquemas. "Introspecção" é o processo de obter os metadados do banco de dados, tais como os nomes dos objetos e o código-fonte. O DataGrip precisa da introspecção para fornecer rapidamente assistência à codificação, navegação e buscas.
O acesso aos catálogos de sistema da Oracle é bastante lento e a introspecção era ainda mais demorada se o usuário não tivesse privilégios de administrador. Fizemos o possível para otimizar as buscas para obter os metadados, mas tudo tem limitações.
Percebemos que para a maior parte do trabalho diário, e mesmo para que a assistência à codificação seja eficaz, não é preciso carregar fontes de objetos. Em muitos casos, basta conhecer os nomes dos objetos do banco de dados para proporcionar um bom desempenho na complementação de código e na navegação. Então, introduzimos três níveis de introspecção em bancos de dados Oracle:
A introspecção é mais rápida no nível 1 e mais demorada no nível 3.
Use o menu de contexto para mudar o nível de introspecção conforme for apropriado.
O nível de introspecção pode ser configurado só para um esquema ou para todo o banco de dados. Os esquemas herdam seu nível de introspecção do banco de dados, mas o nível também pode ser configurado de forma independente.
O nível de introspecção é representado pelos ícones em forma de pílula encontrados junto ao ícone da fonte de dados. Quanto mais a "pílula" estiver preenchida, maior o nível. Um ícone azul significa que o nível de introspecção foi configurado diretamente, enquanto um ícone cinza significa que o nível foi herdado.
Você pode mapear seu servidor vinculado no SQL Server ou link de banco de dados no Oracle a qualquer fonte de dados existente.
Quando objetos externos forem mapeados à fonte de dados, o preenchimento e a resolução de código funcionarão nas consultas que utilizarem esses objetos externos.
Anteriormente, esquemas internos de sistema (tais como pg_toast ou pg_temp) e bancos de dados de modelo (template databases) não apareciam na lista de esquemas. Agora é possível mostrá-los, usando as opções correspondentes na aba Schemas.
Agora os fluxos são mostrados na visualização de banco de dados, além das tabelas e visualizações.
As tabelas distribuídas agora são colocadas sob um nó dedicado no explorador de banco de dados.
One of our users posted about an unfortunate situation: he executed the UPDATE
query on a production database with the condition WHERE id - 3727
(instead of =) and had millions of records updated!
Também ficamos surpresos de o MySQL permitir isso, mas é a vida. Porém, nós não seríamos a equipe do DataGrip se não adicionássemos uma inspeção para isso! Deem as boas-vindas à verificação de expressões booleanas em condições WHERE
e HAVING
.
Se a expressão não parecer ser explicitamente booleana, o DataGrip a realçará em amarelo e avisará a você antes de executá-la. Isso funciona no ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite e Vertica. Em todos os outros gerenciadores de bancos de dados, isso será realçado como um erro.
Agora as consultas podem ser extraídas como funções de tabela. Para isto, acione o menu Refactor e clique em Extract Routine.
JOIN
A nova dica de inserção informa a cardinalidade de uma cláusula JOIN
. Há três opções possíveis: um para um; um para muitos; e muitos para muitos. Se você quiser desativá-la, poderá ajustar a configuração em Preferences | Editor | Inlay Hints | Join cardinality.
Os nomes dos bancos de dados agora são complementados quando se usa getSiblingDB
. Da mesma forma, nomes de coleções agora são complementados quando se usa getCollection
.
Além disso, nomes de campos agora também são complementados e resolvidos quando utilizados a partir de uma coleção definida por getCollection
.
Atendendo a este pedido, não são mais mostrados timestamps na saída das consultas, por default. Se você desejar voltar ao comportamento anterior, pode ajustar essa configuração em Database | General | Show timestamp for query output.
Se você utilizar a janela de ferramentas Services no modo janela, ela estará oculta atrás do IDE por default. Com esta nova configuração, você pode alternar o foco para a janela toda vez que executar uma consulta, de modo que ela apareça depois que a consulta tiver terminado.
Além disso, se você fica irritado quando uma longa consulta termina ativando a aba correspondente a essa consulta na janela de ferramentas Services, marque a opção Activate Services output pane for selected query console only.
Você notará as seguintes melhorias ao importar arquivos .csv ou copiar tabelas ou conjuntos de resultados:
Quando um arquivo CSV for aberto ou importado, agora o DataGrip detectará automaticamente se a primeira linha for o cabeçalho e, portanto, contiver os nomes das colunas.
O DataGrip agora detecta os tipos das colunas em arquivos CSV. O maior benefício disso poder ordenar os dados por valores numéricos. Anteriormente, dados numéricos eram tratados como texto e a ordenação não era intuitiva.
Anteriormente, havia dois recursos muito semelhantes – Favorites e Bookmarks, mas a diferença entre os dois podia ser confusa às vezes. Por isso, decidimos ficar com um só – Bookmarks. Reformulamos o workflow desta funcionalidade e criamos uma nova janela de ferramentas para ela.
De agora em diante, todos os objetos ou arquivos que você marcar como sendo importantes (através do atalho F3 no macOS ou F11 no Windows e no Linux) estarão na nova janela de ferramentas Bookmarks.