23

使用 Toad for Oracle,我可以生成完整的 DDL 文件,描述 Oracle 模式的所有表、视图、源代码(过程、函数、包)、序列和授权。一个很棒的功能是将每个 DDL 声明分成不同的文件(每个对象的文件,无论是表、过程、视图等),因此我可以编写代码并查看数据库的结构而无需 DB 连接. 使用 DDL 文件的另一个好处是,我不必在每次需要查看表定义时都连接到数据库来生成 DDL。在 Toad for Oracle 中,执行此操作的方法是转到数据库 -> 导出并根据您要导出的内容选择适当的菜单项。它可以让您及时了解数据库。

是否有一个“批处理”工具可以导出
- 所有表 DDL(包括索引、检查/引用约束)
- 所有源代码(每个过程、函数的单独文件)
- 所有视图- 来自 SQL Server 的
所有序列?

PostgreSQL 怎么样?
那么 MySQL 呢?
安格尔呢?

对于该工具是开源的还是商业的,我没有偏好。

4

8 回答 8

42

对于 SQL 服务器

在 SQL Server Management Studio 中,右键单击您的数据库并选择“任务”->“生成脚本”。

您将被要求选择要包含在脚本中的 DDL 对象。

于 2009-12-18T18:53:17.167 回答
9

在 PostgreSQL 中,只需对 pg_dump 使用 -s 选项。您可以以自定义格式将其作为纯 sql 脚本(整个数据库的一个文件)获取,然后您可以在需要时抛出一个脚本来为每个对象获取一个文件。

PgAdmin 工具还将向您显示每个对象的 SQL 转储,但我认为没有一种很好的方法可以从那里一次获取所有对象。

于 2009-12-19T12:47:44.647 回答
6

对于 mysql,我使用 mysqldump。该命令非常简单。

$ mysqldump [选项] db_name [表]

$ mysqldump [选项] --databases db_name1 [db_name2 db_name3...]

$ mysqldump [选项] --all-databases

为此有很多选择。看看这里以获得一个很好的参考。

于 2009-12-18T18:13:40.910 回答
5

除了 SSMS 中的“生成脚本”向导之外,您现在还可以使用 mssql-scripter,它是一个用于生成 DDL 和 DML 脚本的命令行工具。

它是一个基于 Python 的开源工具,您可以通过以下方式安装:pip install mssql-scripter。

下面是一个示例,说明您可以使用脚本将数据库架构和数据写入文件。mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data > ./adventureworks.sql 更多指南:https ://github.com/Microsoft/sql-xplat-cli/blob/dev/doc/使用指南.md

这是 GitHub 存储库的链接:https ://github.com/Microsoft/sql-xplat-cli

于 2017-05-22T20:57:43.883 回答
3

MySQL 有一个很棒的工具,叫做MySQL workbench,它可以让你对数据库进行反向和正向工程,以及同步,我非常喜欢。您可以在执行这些函数时查看 DDL。

于 2009-12-18T18:09:37.393 回答
3

我写了SMOscript 可以满足您的要求(指 MSSQL Server)

于 2009-12-18T18:58:42.053 回答
1

按照 Daniel Vassallo 的说法,这对我有用:

pg_dump -f c:\filename.sql -C -n public -O -s -d Moodle3.1 -h localhost -p 5432 -U postgres -w
于 2017-04-06T00:41:11.030 回答
0

试试这个基于 python 的工具:Yet another script to split PostgreSQL dumps into object files

于 2017-03-15T15:05:23.750 回答