LibreOffice BaseからPostgreSQLに接続する方法 †
Ubuntu、PostgreSQL、LibreOfficeを使用しLibreOffice BaseからPostgreSQLに接続する手順を以下に記します。
他の環境を使用する方は、以下の各種情報を読み替えて使用してください。
使用環境 †
各種使用したソフトウェア等を以下に記します。
OS | Ubuntu 12.04, Windows7 |
LibreOffice | LibreOffice4.1 Windows版 |
PostgreSQL | 9.1 (Ubuntuで稼働) |
Ubuntu上(PostgreSQL)の環境構築 †
Ubuntu上にPostgreSQLをインストールしデータベース作成およびテーブルを作成した手順を以下に記します。
- UbuntuにPostgreSQLをインストール
以下のコマンドでPostgreSQL9.1のパッケージをインストールしました。
sudo apt-get install postgresql-9.1
- postgresql.confの修正
Windows7からUbuntuマシン(PostgreSQL)に接続するので、PostgreSQLの設定ファイルpostgresql.confの以下の部分を修正しました。
(以下のファイルのありかはUbuntuの場合です。他の環境を使用している場合は読み替えてファイルを編集してください。)
- pg_hba.confの修正
外部から(LibreOffice Base@Windows)からPostgreSQL@Ubuntuに接続できるようにpg_hba.confに追記しました。
- PostgreSQLを以下のコマンドで再起動します。
postgres@ubuntu:~$ /etc/init.d/postgresql restart
* Restarting PostgreSQL 9.1 database server [ OK ]
以上でPostgreSQLの設定は完了です。
データベーステストテーブルの作成 †
上記のpostgresユーザのままで以下のコマンドでデータベースとテーブルを作成しました。
注意点としては、テーブル作成時にかならずプライマリキーを指定してください。
プライマリキーを指定しないと、Baseによるテーブルのレコード内容の修正ができなくリードオンリーになります。
(プライマリキーがないので編集できませんよね。確かではないですが以前ODBC接続の場合はOID?を使用してできたように気がします…)
postgres@ubuntu:~$ createdb testdb
postgres@ubuntu:~$ psql testdb -c "create table t1 (a int primary key, b int, c int);"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t1_pkey" for table "t1"
CREATE TABLE
データも一件INSERTしておきます。
postgres@ubuntu:~$ psql testdb -c "insert into t1 values (1, 1, 1);"
INSERT 0 1
LibreOffice Baseからの接続 †
以下の手順でLibreOffice Base(Windows7で稼働)からUbuntu上のPostgreSQLに接続しました。
- LibreOfficeの起動
- データベースをクリックします。
- データベースウイザードが起動されます。
- 既存のデータベースに接続をクリックします。
- PotgreSQLを選択します。
- 次へボタンを押します。
- データソースのURLを以下のように入力します。
dbname=データベース名 host=ホスト名
今回この資料では、以下のような環境になっています。
dbname | host |
testdb | 192.168.56.12 |
従って以下のように設定しました。
- 次へボタンを押します。
- ユーザ名を入力します。
今回の環境ではpostgresになります。
必須パスワードですが、pg_hba.confでtrustを指定したのでチェックを入れませんでした。
pg_hba.confの設定によっては必須パスワードにチェックが必要になると思います。
- 次へボタンを押します。
- 以下の画面が表示されたので、以下のように設定し完了ボタンを押しました。
データベースの登録については、必要に応じて選択してください。
- 保存ダイアログが表示されるので、適当な名称をつけ保存してください。
- テーブルクリックしpublicをクリックすると作成済みであるt1テーブルを確認することができます。
- テーブルt1をダブルクリックすると以下のようにテーブル内容が表示されます。
あとは、データを入力したり削除したりテーブルのデザインができるようになります。
以上、LibreOffice BaseからPostgreSQLに接続する方法でした。