ここから本文です

PostgreSQLでデータベーステンプレートの作り方を教えてください。

fan********さん

2011/2/114:36:50

PostgreSQLでデータベーステンプレートの作り方を教えてください。

PostgreSQLでデータベースを作成する際、諸般の事情で毎回必ず使うテーブルがあります。データベース作成の都度、SQL文を発行すればよいのですが、それも手間なので、データベースのテンプレートを作成して、毎回コピーしてデータベースを作成すれば楽チンと思いました。
まず最初に、ユーザpostgresでデータベースを作成し、その中に必要なテーブルを作成しました。そのあとデータベースをテンプレート化するために、以下のコマンドを発行しました。
update pg_database set datistemplate=true where datname='データベース名'

これでテンプレート化できたと思って喜んでいました。実際別ユーザ(postgresでないユーザ)になり以下のコマンドを発行してデータベースを新規作成してみました。
createdb -T テンプレート名 データベース名

データベース自体は出来ているし、テーブルもしっかり作成されていました。しかしテーブルのオーナーがpostgresのままでした。当然この状態では当該テーブルに対して何も操作できません。いったんpostgresでログインしなおし、ALTERコマンドでオーナーを変更することはもちろん出来ますが、何のためにテンプレートしたのか意味がわかりません。

そこで質問ですが、テーブルのオーナーもデータベース作成者と同じにするには、どこをどのように変更すれば良いのでしょうか。指揮者の方、ご教授願えますでしょうか。どうぞよろしくお願い致します。

閲覧数:
992
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

2011/2/208:02:29

答えを先に書いてしまうと「無い」です。
実はテンプレートデータベースはデータベースオーナーを変更するオプション(-O)はありますけど、データベース内のテーブルを変更するオプションは無いのです。
そのため、こういうことをしたいならテンプレートDBを作成するよりも、pg_dumpに-O -xオプションをつけてダンプしてpg_restoreでリストアしたほうがいいです。

質問した人からのコメント

2011/2/7 21:30:11

ないのですか・・・。じゃぁ、テンプレートにテーブルを作成しておくのは得策ではないのですね。がっかりです。
ちなみにカテゴリーマスターって日本語が読めなくてもなれるのですね。驚きです。

ベストアンサー以外の回答

1〜1件/1件中

2011/2/710:12:20

[データ接続の選択]画面の[新しい接続]ボタンをクリックし、[接続の追加]ダイアログを表示します。表示したダイアログの[データソース]を「Microsoft SQL Server データベース ファイル」に設定し、データベース ファイル名を指定します

[OK]ボタンをクリックし、ダイアログを閉じます。すると、次 のように新たに作成するデータベースファイルが指定されます。

[次へ]ボタンをクリックすると、[ローカル データベース ファイル]に関する確認のメッセージボックスが表示されます。[はい]を選択します。[データベースオブジェクトの選択]次の画面で、新たに作成するデータベース のオブジェクトを選択します。今回は、[テーブル]にチェックをつけ、[完了]ボタンをクリックします。

すると、新たな SQL Server データベース ファイルが生成され、自動的に DataSet の設定が行われます。続いては、作成された SQL Server データベース ファイル にテーブルを追加します。[サーバー エクスプローラ]の[データ接続]に追加したデータベース(test.mdb)の[テーブル]を選択します

ショートカットメニュー[新しいテーブルの追加]を選択すると、テーブルのデザインを指定するファイルが起動します。下記のように、追加する列名とデータ型、その他のプロパティを設定し、保存します

すると、次 のように作成したテーブルが追加されます。

次に、[データソース]ウィザードで追加した DataSet を選択し、[ウィザードで DataSet を構成]ショットカットメニューを選択します。表示された[データソース構成ウィザード]で、[Table1]テーブルの「ID」と「NAME」項目にチェックをつけ、[完了]ボタンをクリックします

これにより、次 のように、設定したデータソースが追加されます。

最後に、フォーム上で取得したデータを表示させます。[データソース]ウィザードから、表示したいデータソース内のデータ項目を選択し、フォームにドラッグ & ドロップしていきます。以上の設定を行い、アプリケーションを実行すると、図9 のように表示されます

今回、SQL Server データベースファイルの作成と表示方法の紹介のため、表示されたデータの更新や削除などの実装は行っていません。そのため、BindingNavigator コントロールの「削除」や「データの保存」ボタンを選択すると、エラーが発生する場合があります

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる