web-dev-qa-db-ja.com

SQL Serverの完全なデータベースDDLを生成するツールはありますか? PostgresとMySQLはどうですか?

Toad for Oracleを使用すると、Oracleスキーマのすべてのテーブル、ビュー、ソースコード(プロシージャ、関数、パッケージ)、シーケンス、および付与を記述した完全なDDLファイルを生成できます。優れた機能は、各DDL宣言を異なるファイル(テーブル、プロシージャ、ビューなどのオブジェクトごとのファイル)に分割するため、DB接続なしでコードを記述してデータベースの構造を確認できることです。 。 DDLファイルを操作するもう1つの利点は、テーブル定義を確認する必要があるたびにDDLを生成するためにデータベースに接続する必要がないことです。 Toad for Oracleでこれを行う方法は、[データベース]-> [エクスポート]に移動し、エクスポートする内容に応じて適切なメニュー項目を選択することです。それはあなたにその時点でのデータベースの素晴らしい絵を与えます。

エクスポートする「バッチ」ツールはありますか
-すべてのテーブルDDL(インデックス、チェック/参照制約を含む)
-すべてのソースコード(プロシージャ、関数ごとに個別のファイル)
-すべてのビュー
-すべてのシーケンス
SQL Serverから?

PostgreSQLはどうですか?
MySQLはどうですか?
アングルはどうですか?

ツールがオープンソースであるか商用であるかについては、私は好みがありません。

17
user78706

PostgreSQLでは、pg_dumpに-sオプションを使用するだけです。プレーンSQLスクリプト(データベース全体に対して1つのファイル)としてカスタム形式で取得できます。必要に応じて、スクリプトをスローしてオブジェクトごとに1つのファイルを取得できます。

PgAdminツールは各オブジェクトのSQLダンプも表示しますが、そこからすべてを一度に取得する良い方法はないと思います。

7
Magnus Hagander

SQL Serverの場合

SQL Server Management Studioで、データベースを右クリックし、[タスク]-> [スクリプトの生成]を選択します。

スクリプトに含めるDDLオブジェクトを選択するように求められます。

37
Daniel Vassallo

Mysqlには、mysqldumpを使用します。コマンドは非常に簡単です。

$ mysqldump [オプション] db_name [テーブル]

$ mysqldump [options] --databases db_name1 [db_name2 db_name3 ...]

$ mysqldump [options] --all-databases

このためのオプションがたくさん。 ここを見てください 参考のために。

6
Carl

SSMSの「スクリプトの生成」ウィザードに加えて、コマンドラインツールであるmssql-scripterを使用してDDLおよびDMLスクリプトを生成できるようになりました。

これはオープンソースでPythonベースのツールであり、pip installmssql-scripterからインストールできます。

これは、データベーススキーマとデータをファイルにスクリプト化するために使用できるものの例です。 mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data> ./adventureworks.sqlその他のガイドライン: https://github.com/Microsoft/sql-xplat-cli/blob/ dev/doc/Usage_guide.md

そして、ここにGitHubリポジトリへのリンクがあります: https://github.com/Microsoft/sql-xplat-cli

4
Tara Raj

MySQLには MySQL workbench と呼ばれる優れたツールがあり、データベースをリバースおよびフォワードし、同期することができます。これは私が本当に気に入っています。これらの関数を実行すると、DDLを表示できます。

3
Andy West

私は書いた SMOscript これはあなたが求めていることをします(MSSQLServerを参照)

2
devio

Daniel Vassalloが言ったことに続いて、これは私のために働きました:

pg_dump -f c:\filename.sql -C -n public -O -s -d Moodle3.1 -h localhost -p 5432 -U postgres -w
0
Karl
0
shcherbak