Tool(sbt)slf4jsambasubcutsubversionsniffingSVGswtTDDThrifttomcatTractwitterthymeleafvaadinwicketwindowswippienwordpresszebedee仮想化vlcjVisualVMXAMPPプログラム設計論その他・未整理PostgreSQLアップデート時の問題点PostgreSQLはFirebird等と異なり、バージョン7から8に更新すると、7で作成したデータベースを扱えなくなってしまう。読み書きができないのではなく、読むことさえできないようだ。移行するには、以下の手順を行う必要がある。先のDBをリストアしたがって、これを行わずに更新してしまうと、その環境ではどうやっても移行ができなくなってしまう。以下はLinuxを対象とし、既に他人が構築した何らかのデータベースが存在し、それに対して操作を行うことを目的とする。スーパユーザになるPostgreSQLがインストールされた時点でLinux上のpostgresというアカウントが作成されている。これは、PostgreSQLデータベースに対するどのようなことでも可能なスーパーユーザである。作成された時点ではパスワードは設定されておらず(/etc/shadowのパスワード欄は「!!」)、root以外のユーザはpostgresになることはできない。この状態でよいのであれば、postgresのパスワードを設定する必要はない。※Linux上のアカウントがスーパーユーザであるという点はFirebirdとは異なる。FirebirdのsysdbaはLinux上アカウントではなく、Firebird自体が管理しているアカウント。rootからは以下のようにしてpostgresユーザになる。postgres※ハイフンは前のユーザ(root)の環境を引き継がないという意味。以下の操作はpostgresユーザであることを前提とする。データベース一覧を表示するpsqlを使ってデータベース一覧を表示する。psqlには、コマンド投入後何かを行ったあとすぐにLinuxプロンプトに戻るモードと、対話的なモードとがあるが、以下ではデータベース一覧を表示して、すぐにLinuxシェルに戻る。-lデータベースのバックアップとリストアプレーンテキストのバックアップファイルを作成する。この方法は他のデータベースへの可搬性がある代わりに、ユーザパーミッション等は無視されてしまう。存在するデータベースをバックアップする。以下の方法はデータベースが稼動中でも正しく行われる。バックアップファイルバックアップ先ファイルにはテキスト形式で書き込まれている。バックアップファイルデータベースをリストアするには、最初に空のデータベースを作成し、次にバックアップファイルを読み込ませる必要がある。template1がある。通常はtemplate0で良い模様。データベースのバックアップとリストア2バイナリ形式でバックアップする。バックアップファイル-Ftというオプションもあるが、どう違うのか不明。-Fcの方は圧縮されるとのこと。バックアップファイルpg_restoreに-Cフラグをつければデータベースを作成するとマニュアルにはあるが、うまく動かない。バイナリの場合はユーザの権限もリストアされる。ユーザを作成するpostgres以外のユーザを作成しておく、これは別にLinuxのユーザである必要はない(その必要があると記述のある資料も見つかるが。ユーザ名このとき以下のようなメッセージが表示される。一つのデータベースに対する操作を行うには、psqlにデータベース名を指定して対話モードで使う。データベース名これ以降プロンプトは「データベース名=#」となる。ここで様々なコマンドを投入することができる。pg_userpg_hba.confの設定Linux(Redhat系のみ?)では、/var/lib/pgsql/data/pg_hba.confにある。userというエラーが発生する。sameuserとなっているが、これでは厳しすぎるので以下のように、ローカルな接続の場合はすべてを許すようにする。trust※注意:postgresqlを再起動しないと反映されない(再起動しない方法もあるかも)。