PostGISのデータディレクトリを変更する


PostGISのインストール途中で「Failed to load SQL modules into the database cluster.」や「Spatial database creation failed.」とエラーが出る場合があり、データディレクトリを変更する必要がありましたので、変更手順を紹介します。


PostgreSQLのサービスを削除する

f:id:Chiakikun:20190815233634p:plain

先に設定していたデータディレクトリを削除してから、PostgreSQLインストーラーが設定したサービスを削除します。コントロールパネルから「システムとセキュリティ」→「管理ツール」→「サービス」と移動して「Postgresql-x64-10」が確認できます。

 

f:id:Chiakikun:20190815234039p:plain

cmdを管理者権限で起動します。PowerShellではダメでした。

コマンドプロンプトで次のコマンドを実行します。

sc delete postgresql-x64-10

 


データディレクトリを作成する

f:id:Chiakikun:20190815234342p:plain

データディレクトリを手動で作成します。ここはPowerShellでも構いません。initdbコマンドを使うのでPath設定はしておいてください。次のコマンドを実行します。

initdb -D C:\users\〇〇\PostgreSQL -W -U postgres -A password --no-locale -E UTF8

〇〇の部分は自身のユーザー名を入れてください。データベースのパスワードの入力を求められるのでパスワードを2回入力すると、データディレクトリが作成されます。


PostgreSQLのサービスを登録する

f:id:Chiakikun:20190815235038p:plain

サービスを登録します。cmdを管理者権限で作成して、次のコマンドを実行します。

sc create postgresql-x64-10 binPath= "\"C:\Program Files\PostgreSQL\10\bin\pg_ctl.exe\" runservice -N \"postgresql-x64-10\" -D \"C:\Users\〇〇\PostgreSQL\"" start=auto password=************