はじめに
Gakken LEAPのエンジニアのnishidaです。
今までMySQLばかり使っていたので、GUIツールはSequel Aceばかり使っていましたが、今回初めてDBeaverを使ったところかなりハマってしまったので、原因と対応方法を残しておきたいと思います。
概要
今回の唯一にして一番のどハマりポイントはDBeaverの「クライアントのホームが接続用に指定されていません」というエラーが意味不明だった点につきます。
このエラーで困っている人を一人でも多く救えればと思い記事にしました。
一応原因の解説
DBeaverをデフォルトでインストールした状態だと、SELECTやUPDATEなどの一般的なSQLコマンドは利用出来るので「クライアントツールも入っているんだ」という認識でした。そもそも、初めてPostgresqlに接続をした時にプラグインのインストールも走りますし。
しかし、実際はダンプ、リストアコマンドであるpg_dump、pg_restoreはこの時にインストールされていないようです。
原因がわかれば対応は簡単で、コマンドをインストールして、DBeaverに設定してやればいいだけです。
というわけで、以下インストールからダンプ、リストアの手順までを解説します。
具体的な手順
コマンドのインストール&設定
- pg_dumpなどのコマンドのインストールは下記のURLが詳しいので、手順通りにlibpqをインストールする
参考URL:https://zenn.dev/bisque/scraps/d97952787f8d33 - DBeaverのサーバのコンテキストメニューを表示して接続の編集を選択
- 接続設定→一般タブ→ドライバの設定を編集をクリック
- ドライバの編集ウィンドウが開くので、ネイティブクライアントタブを開く
- ホームを追加をクリックして、手順1でpg_dumpをインストールしたフォルダを選択
→ここで「/opt」とかの特殊なフォルダは「Command + Shift + .」を押さないと表示されないので注意です - OKをクリックしてホームの追加とドライバの編集を閉じる
これで、DBeaverの「クライアントのホームが接続用に指定されていません」というエラーが解消されます!
バックアップ手順
以下、具体的なバックアップの作成手順について記載しますが、ダイアログに従ってぽちぽちボタンを押すだけです。
- DBeaverでバックアップを取りたいデータベースのコンテキストメニューのツール > バックアップをクリック
- exportのウィンドウが表示されるので、Objectsでpublicを選択
→下に全てのテーブルがチェックされた状態になる
- 「Next」をクリックして、次の画面で出力先を選択
- 「開始」をクリックすると、指定した出力先にバックアップのsqlが出力される
リストア手順
以下、バックアップ手順で取得したバックアップを使ったリストア手順について記載します。
1.リストア対象のDBの下にあるpublicスキーマを削除するなど空にしておく
2.バックアップをリストアしたいデータベースのコンテキストメニューのツール > リストアをクリック
3. Backup fileでバックアップしたsqlファイルを選択
→ファイル種別でsqlに変更しないと選択出来ない
4. 「開始」をクリックするとリストアされる
最後に
気がつけばなんてことはないのですが、ズバっとこの答えにたどり着ける情報がなく、また「どの画面のこと言っているの?」ということも多くて結構苦戦しました。
どなたかの役に立てば幸いです。
エンジニア募集
Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!
ぜひお気軽にカジュアル面談へお越しください!!