【问题标题】:Script schema of the entire database with Datagrip使用 Datagrip 编写整个数据库的脚本模式
【发布时间】:2016-12-01 11:36:52
【问题描述】:

是否可以使用 datagrip 编写整个数据库(SQL Server 或 Postgres)的架构脚本?

我知道我可以为每个存储过程/函数自己获取表和视图以及源的 DDL。

我可以一次为数据库中的所有对象获取一个脚本吗?

或者,有没有办法一次搜索所有例程的代码,比如我需要找到哪些正在使用#table temp table?

【问题讨论】:

    标签: datagrip


    【解决方案1】:

    从 2018.2 开始有一个称为 SQL 生成器的功能。它将为具有多个可用选项的数据库/模式生成整个 DDL。

    结果是:

    但是: 如果您只想了解表格的使用位置,请使用称为 Find Usages 的专用功能(Alt+F7 或表格名称上的上下文菜单)

    【讨论】:

      【解决方案2】:

      要回答您问题的第二部分:在您的所有程序中快速简便地搜索#table,您可以执行以下查询

      SELECT *
      FROM information_schema.routines
      WHERE routine_definition LIKE '%#table%'
      

      【讨论】:

        【解决方案3】:

        我今天一直在找这个,结果刚刚找到。如果您右键单击要复制的架构并选择“复制 DDL”,这会将创建脚本复制到剪贴板。

        【讨论】:

        • 嗯,乍一看确实如此,但它有一个严重的限制:所有存储过程都被编写为CREATE PROCEDURE usp_RequestFileDelete(@FileId INT);,即没有代码(至少对于 Sql Server)
        • 真可惜。我仅将 Datagrip 与 Amazon 的 Redshift 一起使用。每当我必须使用 Sql Server 时,我都会使用 SSMS。如果您添加 SQL Prompt 或 SQL Complete,SSMS 非常好。
        • 同样的事情,喜欢我的 sqlcomplete。希望有本机 OSX 工具,所以我不需要 RDP 到我的电脑只是为了做一些数据库的东西。显然不能做我需要的所有事情。
        【解决方案4】:

        目前只有转储表有效。在 8 月底推出的 2016.3 EAP 中,将集成 mysqldump 和 pg_dump。

        【讨论】:

        • 这根本不能回答我的问题。我对架构感兴趣,而不是数据。
        • 对问题进行了澄清,以避免进一步混淆。
        • 2016.3将集成mysqldump和pg_dump
        猜你喜欢
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-08
        • 2012-06-08
        • 2010-09-15
        • 1970-01-01
        相关资源
        最近更新 更多