[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kagemai-users:0084] Re: PostgreSQL で大文字を含んだプロジェクトIDのプロジェクトが作成できない



福岡です。

t_kikumoto@xxxxxxxxx san wrote:
 
| >PostgreSAMPLE はプロジェクトの ID ですよね?
| >これを、小文字だけの ID のプロジェクトを作るとどうですか?
| 
| 渡邉さん、ご指摘のとおり、小文字だけの ID のプロジェクトを作成すると
| 成功しました。
| query が
| 
|   create database PostgreSAMPLE with encoding = 'EUC_JP'
| 
| と、PostgreSAMPLE が "" で囲まれていないから、小文字のデータベースが
| できあがっているのですね。しかし、その後のDBへの接続が PostgreSAMPLE 
| のままなので、失敗するわけですね。
| ありがとうございました。
| ところで、これは、影舞のバグになるのでしょうか?

バグですね。これまで大文字が含まれたプロジェクトIDのプロジェクトを
作ったことが無かったため、まったく気がつきませんでした。

BTS:108 として入れておきました。

  http://www.daifukuya.com/kagemai/guest.rbx?project=kagemai&action=view_report&id=108

小文字だけのプロジェクトIDで困らないならいいんですが、大文字も使いたい
場合には、lib/kagemai/dbistore.rb を以下のように変更するか、BTS の
レポートに添付した修正済みの dbistore.rb と置き換えてみてください。

Index: dbistore.rb
===================================================================
RCS file: /home/repository/kagemai/lib/kagemai/dbistore.rb,v
retrieving revision 1.25
diff -u -r1.25 dbistore.rb
--- dbistore.rb	8 Mar 2003 19:03:33 -0000	1.25
+++ dbistore.rb	6 May 2003 15:15:41 -0000
@@ -55,14 +55,14 @@
     def self.create_database(driver_name, workdb, dbname, user, pass, args, sql_opt)
       driver_url = create_driver_url(driver_name, workdb, args)
       DBI.connect(driver_url, user, pass) do |db|
-        db.do("create database #{dbname} #{sql_opt}")
+        db.do("create database \"#{dbname}\" #{sql_opt}")
       end
     end
 
     def self.drop_database(driver_name, workdb, dbname, user, pass, args)
       driver_url = create_driver_url(driver_name, workdb, args)
       DBI.connect(driver_url, user, pass) do |db|
-        db.do("drop database #{dbname}")
+        db.do("drop database \"#{dbname}\"")
       end
     end

-- 
福岡ともゆき <fukuoka@xxxxxxxxxxxxx>
http://www.daifukuya.com/