2017-04-05 7 views
1

データベースに格納されたデータを含めずにデータベース設計をバックアップする方法を見つけようとしました。実際には、データベース内のすべての "CREATE Scripts"を保持するファイルを作成したいと思うかもしれません。理想的には、このファイルを使用してデータベースを再作成することができます(もちろんデータはありません)。PostgreSQLデータベース設計のバックアップ - データなし

データベースバックアップのデータを回避するにはどうすればよいですか?

私はpgAdmin 4.1.3とPostgreSQL 9.6を使用しています。データベース上の

+0

クリックバックアップ –

+2

の「スキーマのみ」[ 'を参照してください。 pg_dump'を '--schema-only'オプション付きで実行](https://www.postgresql.org/docs/current/static/app-pgdump.html)を参照してください。 – Abelisto

答えて

0

ステップ - <ツール] - > [バックアップ

[オプション]に

をダンプ

enter image description here

3

真であるとスキーマのみをチェックあなたはpsqlの(端末)からこれを使用することができます:

pg_dump -s databasename > file.dump 

pg_dumpのドキュメントから、 "-s"はオブジェクト定義(スキーマ)のみをダンプし、データはダンプしません。

pg_dump documentation

+0

私はPostgreSQLを使い始めたばかりで、pgAdminを使ってデータベースにアクセスしています。だから、 'pg_dump'コマンドを受け入れるコマンドインタプリタを開く方法は? (データベースは私のPC上にはなく、リモートサーバ上にあります) – Helge

+0

はLinuxサーバーですか?どのオペレーティングシステムを使用していますか? –

+0

私はWindows 7を使用しています。 – Helge

0
pg_dump --host localhost --port 5432 --username "userName" --schema-only --verbose --file "file path" "db_dev_local" 
+6

コマンドの動作と、この回答をより有益かつ有用なものにするでしょう。 –

+0

例が正しくありません。二重ダッシュでPOSIXスタイルのオプションを使用する場合は、 '= 'シンボルも使用する必要があります。 '--username = postgres'です。スペースは単一のダッシュオプションとともに使用されます。 '-U postgres' – isapir

0

pg_dumpユーティリティは、binディレクトリにはPostgresと一緒に配布されています。ユーティリティは、多くのoptions as documentedを受け入れ、形式は次のとおりです。

pg_dump <options> <database-name> 

が、ここで、具体的質問に答える(* nixのにシェル)コマンドプロンプトウィンドウを開き、Postgresのbinディレクトリに移動するには。その後、次のコマンド(Windowsの構文が示す)を発行します。

> set DB_NAME=mydatabase 
> pg_dump.exe --username=postgres --schema-only %DB_NAME% >%DB_NAME%-schema.sql 

DB_NAME環境変数は、便宜上、純粋で、そして名前は簡略化のためにインライン化することができます。

ほとんどの場合、有効なPostgresユーザーとしてOSにログインしていない可能性があるので、ほとんどの場合、スイッチが必要です。

スイッチ--schema-onlyスイッチは、実際のデータなしでDDLステートメントのみが必要であることを示します。

>%DATABASE_NAME%-schema.sql部分は、コンソールからの出力を%DATABASE_NAME%-schema.sqlというファイル(この例では "mydatabase-schema.sql")にリダイレクトします。

生成されたファイルは有効なSQLスクリプトであり、すべてのオブジェクトを再作成するために有効なクライアント経由で実行できます。ここで

が、他の有用な例のカップルです:

私は通常、接頭辞、私が使用して「* mv_」で始まるだけの関係の定義をダンプするので、mv_でマテリアライズド・ビューを:

> pg_dump --username=postgres --schema-only --table=mv_* %DB_NAME% >%DB_NAME%-matviews.sql 

複数のパターンに複数の引数を使用してください(--table=)。

POST-DATAオブジェクトのみをスクリプト化する。インデックスは、などをトリガし、--section=post-data

> pg_dump --username=postgres --section=post-data %DB_NAME% >%DB_NAME%-post-data.sql 

を使用するこれがデフォルト以外の設定を指定するには、デフォルトのホスト、ポート、認証などを想定していdocumentation

関連する問題