[Seasar-user:15683] Re: [DBFlute]ReplaceSchemaがシノニムをDROP TABLEしようとする。

kubo [E-MAIL ADDRESS DELETED]
2008年 9月 5日 (金) 22:12:59 JST


久保です。

> 実は、insert、updateもあります。
> 外だしSQLは、SELECT以外は対応していなかったですよね。
> (一応、試みてみましたが「SELECT句が見つかりません」となりま した)

いや、SELECT以外も対応しています。
outsideSql().execute(path, pmb);

>> https://www.seasar.org/issues/browse/DBFLUTE-322
>
> 本当に例外中の例外だと思いますが、あると心強いです。
> ご検討のほどよろしくお願いいたします。
>
> AとBはどちらも一長一短だと思いますが、あくまで一ユーザーの感 想としましては、Bです。
>
> 理由:FK、PKなどの追加設定は全てdfpropに統一して保存すること ができる。
> 設定がばらけると、見逃してしまいやすかったです。

ご意見ありがとうございます。
貴重な意見として再度検討したいと思います。

2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> 西山です。
>
>> ちなみに外だしSQLでよければ、
>> どこかのテーブルのBehaviorを間借りして、
>> 「SQL文の中身」を該当のシノニムのものにすれば
>> Sql2EntityでEntityを自動生成して(もしくは自作して)、
>> 普通にシノニムにアクセスすることは可能なはずです。
>
> 実は、insert、updateもあります。
> 外だしSQLは、SELECT以外は対応していなかったですよね。
> (一応、試みてみましたが「SELECT句が見つかりません」となりま した)
>
> A.DBFluteのプロジェクトを複数DB対応にする。
> B.SYNONYMを利用して、同じDB内でアクセスする。
> C.別プロジェクトに切り分ける。
>
> 以上の案を検討した結果、SYNONYM対応されているのならば、同じ DB上で扱えるBがいいのではないかと思った次第です。
> C.は、Webで扱う関係上複雑になると思ったので却下しました。
>
>> また、今後こういう機能も検討します。
>> https://www.seasar.org/issues/browse/DBFLUTE-322
>
> 本当に例外中の例外だと思いますが、あると心強いです。
> ご検討のほどよろしくお願いいたします。
>
> AとBはどちらも一長一短だと思いますが、あくまで一ユーザーの感 想としましては、Bです。
>
> 理由:FK、PKなどの追加設定は全てdfpropに統一して保存すること ができる。
> 設定がばらけると、見逃してしまいやすかったです。
>
>>> エレメント・タイプ "table" のコンテンツが不完全です、
>>> " (column+,(foreign-key|index|unique|id-method-parameter)*)"
>>> と一致しなければなりません。  project-schema-artap.xml
>>> artap/mydbflute/dbflute-0.7.8/schema  行 4
>>
>> こちら、もしかしたら、
>> カラム情報が空っぽのために発生しているかもしれません。
>> (カラム情報が一つでもあれば発生しないかも)
>
> 確かに空だと発生しませんでした。
> 本来あり得ない構造だからってことですね。
> お手数おかけしました。
>
> お忙しい中ありがとうございました。
>
> [2008/09/05 21:22] kubo さんは書きました。:
>>
>> 久保です。
>>
>>>>> 取り急ぎ、こちらの件だけ対応してました。
>>>>> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.0.zip
>>>>> (SNAPSHOTとなります)
>>>>> でSYNONYMはDropできます。
>>>>
>>>> でよろしくお願いします。
>>>
>>> 確認できました。ありがとうございます。
>>
>> ご報告ありがとうございます!
>>
>>> Oracle 9iは9iでも、パッチが全くあたっていないバージョン (9.2.0.1)を使用せざるを得ない状態です。(今年度後半にはサー
>>> バー入れ替えがある予定なので、その時にOracleバージョンアップ も提案する予定です)
>>>
>>> 少し急ぎで実装する必要がある所なので、当面はS2JDBCでしのごう と思います。
>>
>> 了解です。急ぎということで回避お願いします。
>>
>> ちなみに外だしSQLでよければ、
>> どこかのテーブルのBehaviorを間借りして、
>> 「SQL文の中身」を該当のシノニムのものにすれば
>> Sql2EntityでEntityを自動生成して(もしくは自作して)、
>> 普通にシノニムにアクセスすることは可能なはずです。
>>
>> また、今後こういう機能も検討します。
>> https://www.seasar.org/issues/browse/DBFLUTE-322
>>
>>> エレメント・タイプ "table" のコンテンツが不完全です、
>>> " (column+,(foreign-key|index|unique|id-method-parameter)*)"
>>> と一致しなければなりません。  project-schema-artap.xml
>>> artap/mydbflute/dbflute-0.7.8/schema  行 4
>>
>> こちら、もしかしたら、
>> カラム情報が空っぽのために発生しているかもしれません。
>> (カラム情報が一つでもあれば発生しないかも)
>>
>> 2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>
>>> お世話になっております。
>>> 西山です。
>>>
>>>> 「Drop Table シノニム」で落ちてしまう件は、
>>>>
>>>>> 取り急ぎ、こちらの件だけ対応してました。
>>>>> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.0.zip
>>>>> (SNAPSHOTとなります)
>>>>> でSYNONYMはDropできます。
>>>>
>>>> でよろしくお願いします。
>>>
>>> 確認できました。ありがとうございます。
>>>
>>>> #
>>>> # どうしてもクリアしなければならない問題は
>>>> # カラム情報が取得できてないところですね。。。
>>>> #
>>>
>>> Oracle 9iは9iでも、パッチが全くあたっていないバージョン (9.2.0.1)を使用せざるを得ない状態です。(今年度後半にはサー
>>> バー入れ替えがある予定なので、その時にOracleバージョンアップ も提案する予定です)
>>>
>>> 少し急ぎで実装する必要がある所なので、当面はS2JDBCでしのごう と思います。
>>>
>>>
>>> [2008/09/05 20:10] kubo さんは書きました。:
>>>>
>>>> 久保です。
>>>>
>>>> 西山さん、ありがとうございます。
>>>> 情報提供ありがとうございます!
>>>>
>>>> 「Drop Table シノニム」で落ちてしまう件は、
>>>>
>>>>> 取り急ぎ、こちらの件だけ対応してました。
>>>>> http://dbflute.sandbox.seasar.org/download/dbflute/dbflute-0.8.0.zip
>>>>> (SNAPSHOTとなります)
>>>>> でSYNONYMはDropできます。
>>>>
>>>> でよろしくお願いします。
>>>>
>>>>
>>>>>> 主キーや外部キーが取得できないと聞いておりましたが、
>>>>>> http://d.hatena.ne.jp/jflute/20080822/1219377402
>>>>>> 主キーや外部キー意外のカラム情報も全く取得できない
>>>>>> 状態でしょうか?
>>>>>
>>>>> カラム情報が全く取得できていません。
>>>>> project-schema.xmlの、スキーマの中が空です。
>>>>
>>>> そうですか。こちらでは再現ができていないのですが、
>>>> Oracleのバージョン違いの問題かもしれませんね・・・
>>>>
>>>>
>>>>> エレメント・タイプ "table" のコンテンツが不完全です、"
>>>>> (column+,(foreign-key|index|unique|id-method-parameter)*)"
>>>>> と一致しなければなりません。
>>>>>  project-schema-artap.xml artap/mydbflute/dbflute-0.7.8/schema
>>>>> 行 4
>>>>> XML 問題
>>>>>
>>>>> Pleiadesを使用していますので、日本語化されています。
>>>>
>>>> ありがとうございます。
>>>>
>>>>
>>>>> A.
>>>>> ほとんどはテーブルですが、別DBのデータを更新する必要があり、 一部のテーブルだけ、DBリンク+シノニムでアクセスしようと思い ました。
>>>>>
>>>>> B.
>>>>> 混ざります。可能ならば、シノニムと普通のテーブルのFKも張ろう と考えております。
>>>>>
>>>> 了解しました。ありがとうございます。
>>>> additionalPrimaryKeyMapとadditionalForeignKeyMapで
>>>> 対応できるかと思います。
>>>>
>>>> #
>>>> # どうしてもクリアしなければならない問題は
>>>> # カラム情報が取得できてないところですね。。。
>>>> #
>>>>
>>>> 2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>>>
>>>>> お世話になっております。
>>>>> 西山です。
>>>>>
>>>>> インラインで失礼します。
>>>>>
>>>>>>> シノニムを、「DROP TABLE シノニム名」が実行され処理がそこで
>>>>>>> ストップしてしまいます。
>>>>>>
>>>>>> 具体的に発生する例外を教えて頂けますでしょうか?
>>>>>
>>>>> 長いので添付にいたします。
>>>>>
>>>>>>> 実行環境ではシノニムのカラム情報が取得できていないらしく、
>>>>>>> project-schema.xml、
>>>>>>> bsentity.Bs~クラスに、カラム情報が全くありませんでした。
>>>>>>
>>>>>> 主キーや外部キーが取得できないと聞いておりましたが、
>>>>>> http://d.hatena.ne.jp/jflute/20080822/1219377402
>>>>>> 主キーや外部キー意外のカラム情報も全く取得できない
>>>>>> 状態でしょうか?
>>>>>
>>>>> カラム情報が全く取得できていません。
>>>>> project-schema.xmlの、スキーマの中が空です。
>>>>>
>>>>>>> あと、些細なことですがproject-schema.xmlに type="SYNONYM"が
>>>>>>> あると、DTDと内容が合わなくなり、Eclipse上でエラーとなりました。
>>>>>>
>>>>>> なるほど、これは想定しませんでした。
>>>>>> DTD(どう直せば良いか...)確認します。
>>>>>>
>>>>> エレメント・タイプ "table" のコンテンツが不完全です、"
>>>>> (column+,(foreign-key|index|unique|id-method-parameter)*)"
>>>>> と一致しなければなりません。
>>>>>  project-schema-artap.xml artap/mydbflute/dbflute-0.7.8/schema
>>>>> 行 4
>>>>> XML 問題
>>>>>
>>>>> Pleiadesを使用していますので、日本語化されています。
>>>>>
>>>>>> また、シノニムの利用ですが、
>>>>>> 具体的にどのような用途で利用されているか
>>>>>> 参考までに教えてもらってもよろしいでしょうか?
>>>>>>
>>>>>> A. DBアクセスは全てシノニム経由を想定している?
>>>>>> B. テーブルアクセスとシノニムアクセスを混ざる?
>>>>>> など
>>>>>
>>>>> A.
>>>>> ほとんどはテーブルですが、別DBのデータを更新する必要があり、 一部のテーブルだけ、DBリンク+シノニムでアクセスしようと思い ました。
>>>>>
>>>>> B.
>>>>> 混ざります。可能ならば、シノニムと普通のテーブルのFKも張ろう と考えております。
>>>>>
>>>>>
>>>>>> 2008/9/5 西山 はじめ <[E-MAIL ADDRESS DELETED]>:
>>>>>>>
>>>>>>> お世話になっております。
>>>>>>> 西山です。
>>>>>>>
>>>>>>> 申し訳ありません。追加です。
>>>>>>> 実行環境ではシノニムのカラム情報が取得できていないらしく、
>>>>>>> project-schema.xml、
>>>>>>> bsentity.Bs~クラスに、カラム情報が全くありませんでした。
>>>>>>>
>>>>>>> 以上よろしくお願いいたします。
>>>>>>>
>>>>>>> あと、些細なことですがproject-schema.xmlに type="SYNONYM"が
>>>>>>> あると、DTDと内容が合わなくなり、Eclipse上でエラーとなりました。
>>>>>>>
>>>>>>> [2008/09/05 15:45] 西山 はじめ さんは書きました。:
>>>>>>>>
>>>>>>>> お世話になっております。
>>>>>>>> 西山と申します。
>>>>>>>>
>>>>>>>> databaseInfoMapに
>>>>>>>>    ; propertiesMap= map:{includeSynonyms=true}
>>>>>>>> build.propertiesに
>>>>>>>> torque.database.type.list = list:{TABLE;VIEW;SYNONYM}
>>>>>>>> を設定して、replace-shema.batを実行したところ、
>>>>>>>> シノニムを、「DROP TABLE シノニム名」が実行され処理がそこで
>>>>>>>> ストップしてしまいます。
>>>>>>>>
>>>>>>>> jdbc.bat、generate.batではエラーとなりません。
>>>>>>>>
>>>>>>>> 仕様バージョン・環境は以下のとおりです。
>>>>>>>>  DBFlute 0.7.9
>>>>>>>>  Oracle 9.2.0.1
>>>>>>>>
>>>>>>>> 以上よろしくお願いいたします。
>>>>>>>>
>>>>>>> --
>>>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>>>>> 西山 創
>>>>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>>>>
>>>>>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>>>>>> [TEL]:03-5495-1060
>>>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Seasar-user mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>>>
>>>>>>
>>>>> --
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>>>  西山 創
>>>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>>>
>>>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>>>> [TEL]:03-5495-1060
>>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>
>>>>> 2008-09-05 18:57:17,131 [main] INFO
>>>>>  (DfTableHandler#logDatabaseTypes():141)
>>>>> - $ DatabaseTypes are 'TABLE - VIEW - SYNONYM'
>>>>> 2008-09-05 18:57:17,381 [main] INFO
>>>>>  (DfSchemaInitializerJdbc#callbackDropTableByJdbc():236) - drop table
>>>>> ATM01
>>>>> 2008-09-05 18:57:17,396 [main] ERROR (DfAbstractTask#execute():88) -
>>>>> execute() threw the exception!
>>>>> java.lang.RuntimeException: java.sql.SQLException: ORA-00942:
>>>>> �\�������r���[���������������B
>>>>>
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.callbackDropTableByJdbc(DfSchemaInitializerJdbc.java:257)
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.dropTable(DfSchemaInitializerJdbc.java:211)
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.initializeSchema(DfSchemaInitializerJdbc.java:83)
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.initializeSchema(DfCreateSchemaTask.java:74)
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.doExecute(DfCreateSchemaTask.java:51)
>>>>>      at
>>>>>
>>>>> org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:83)
>>>>>      at
>>>>> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
>>>>>      at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>>>>>      at
>>>>>
>>>>>
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>      at java.lang.reflect.Method.invoke(Method.java:597)
>>>>>      at
>>>>>
>>>>>
>>>>> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
>>>>>      at org.apache.tools.ant.Task.perform(Task.java:348)
>>>>>      at org.apache.tools.ant.Target.execute(Target.java:357)
>>>>>      at org.apache.tools.ant.Target.performTasks(Target.java:385)
>>>>>      at
>>>>> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
>>>>>      at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
>>>>>      at
>>>>>
>>>>>
>>>>> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
>>>>>      at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
>>>>>      at org.apache.tools.ant.Main.runBuild(Main.java:698)
>>>>>      at org.apache.tools.ant.Main.startAnt(Main.java:199)
>>>>>      at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
>>>>>      at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
>>>>> Caused by: java.sql.SQLException: ORA-00942:
>>>>> �\�������r���[���������������B
>>>>>
>>>>>      at
>>>>>
>>>>>
>>>>> oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)
>>>>>      at
>>>>>
>>>>> oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
>>>>>      at
>>>>>
>>>>>
>>>>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
>>>>>      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
>>>>>      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
>>>>>      at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
>>>>>      at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
>>>>>      at
>>>>> oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:936)
>>>>>      at
>>>>>
>>>>>
>>>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
>>>>>      at
>>>>>
>>>>>
>>>>> oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1770)
>>>>>      at
>>>>> oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1739)
>>>>>      at
>>>>>
>>>>>
>>>>> oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:298)
>>>>>      at
>>>>>
>>>>>
>>>>> org.seasar.dbflute.helper.jdbc.schemainitializer.DfSchemaInitializerJdbc.callbackDropTableByJdbc(DfSchemaInitializerJdbc.java:238)
>>>>>      ... 21 more
>>>>>
>>>>> _______________________________________________
>>>>> Seasar-user mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 株式会社フジミック システム開発センター ソフト開発2部
>>>  西山 創
>>> [E-mail]:[E-MAIL ADDRESS DELETED]
>>>
>>> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
>>> [TEL]:03-5495-1060
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>
>>> _______________________________________________
>>> Seasar-user mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>>
>>
>>
>>
>
>
> --
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 株式会社フジミック システム開発センター ソフト開発2部
>  西山 創
> [E-mail]:[E-MAIL ADDRESS DELETED]
>
> 〒140-0002 品川区東品川3-32-42 フジテレビ別館7F
> [TEL]:03-5495-1060
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内