[Seasar-user:13473] Re: [DBFlute] replace-schema実行時の 「table xxxxxx already exist」 エラーについて
kubo
[E-MAIL ADDRESS DELETED]
2008年 3月 29日 (土) 00:03:23 JST
久保です。
橋本さん、こんばんは、
了解しました。
原因がわかってよかったです。
また何かありましたら聞いて下さい。
(ReplaceSchemaはドキュメントが足りてないですから...)
2008/3/28 a-hashimoto <[E-MAIL ADDRESS DELETED]>:
> 橋本です。
> 原因がわかりました。
>
> /dfprop/databaseInfoMap.dfpropの[schema]の設定ミスが原因でした。
>
> [schema]を'root'と設定していました。スミマセン。
> imformation_schemaのTABLE_SCHEMAを確認したところミスに気が付きまし
> た・・・。
>
> 久保さん、いろいろ調べていただいてありがとうございました。
>
>
>
>
>
>
> >橋本です。
> >
> >
> >>通常、そのSQLが実行される前に「DROP TABLE departments」が
> >>実行されるはずなのですが、ログには登場していないでしょうか?
> >>(ログを一部抜粋して頂けるとありがたいです)
> >申し訳ないです。以下ログの抜粋です。
> >処理開始から1つ目のテーブルのエラーまでの抜粋です。
> >
> >
> >2008-03-27 21:13:39,375 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():62) - Using contextProperties file: C:\kaihastu\tomcat5.5\workspace\
> >dbflute_sample\mydbflute\dbflute-0.6.7\build.properties
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():90) - [Properties]: size=7
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.packageBase = sample.dbflute
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.database = mysql
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.s2daoVersion = 1.0.47
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.targetLanguage = java
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.project = dbflute_sample
> >2008-03-27 21:13:39,390 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.daoSqlFileEncoding = UTF-8
> >2008-03-27 21:13:39,406 [main] DEBUG (DfAntTaskUtil#getBuildProperties
> >():94) - torque.jdbcToJavaNativeMap = map:{TINYINT=java.lang.
> >Integer;SMALLINT=java.lang.Integer;INTEGER=java.lang.Integer;BIGINT=java.
> >lang.Long}
> >2008-03-27 21:13:39,421 [main] INFO (DfSimpleDataSourceCreator#create
> >():99) - ...create()
> >2008-03-27 21:13:39,421 [main] INFO (DfReplaceSchemaTask#doExecute():
> >72) - * * * * * * * * * * *
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaProperties#
> >getReplaceSchemaDefinitionMap():31) - ...Initializing
> >replaceSchemaDefinitionMap: {}
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaTask#doExecute():
> >73) - environmentType: ut
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaTask#doExecute():
> >74) - * * * * * * * * * * *
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaTask#doExecute():
> >75) - isReplaceSchemaAutoCommit = true
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaTask#doExecute():
> >76) - isReplaceSchemaRollbackOnly = false
> >2008-03-27 21:13:39,437 [main] INFO (DfReplaceSchemaTask#doExecute():
> >77) - isReplaceSchemaErrorContinue = true
> >2008-03-27 21:13:39,687 [main] INFO (DfGeneratedSqlExecutorImpl#execute
> >():40) - ...Generating SQL:
> >select concat('TRUNCATE TABLE ', table_name, ';') as "sql"
> > from information_schema.tables
> > where table_schema = 'root' and table_type = 'BASE TABLE';
> >
> >2008-03-27 21:13:39,687 [main] INFO (DfGeneratedSqlExecutorImpl#execute
> >():40) - ...Generating SQL:
> >select concat('ALTER TABLE ', table_name, ' DROP FOREIGN KEY ',
> >constraint_name, ';') as "sql"
> > from information_schema.table_constraints
> > where table_schema = 'root' and constraint_type='foreign key';
> >
> >2008-03-27 21:13:39,687 [main] INFO (DfGeneratedSqlExecutorImpl#execute
> >():40) - ...Generating SQL:
> >select concat('DROP TABLE IF EXISTS ', table_name, ';') as "sql"
> > from information_schema.tables
> > where table_schema = 'root' and table_type = 'BASE TABLE';
> >
> >2008-03-27 21:13:39,703 [main] DEBUG (DfSqlFileFireMan#execute():23) - /
> >************************************************************************
> >************
> >2008-03-27 21:13:39,703 [main] DEBUG (DfSqlFileFireMan#execute():35) -
> >2008-03-27 21:13:39,703 [main] DEBUG (DfSqlFileFireMan#execute():36) - _
> >/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
> >/_/_/_/_/_/_/_/_/_/_/_/
> >2008-03-27 21:13:39,703 [main] DEBUG (DfSqlFileFireMan#execute():37) -
> >sqlFile: .\playsql\replace-schema.sql
> >2008-03-27 21:13:39,703 [main] DEBUG (DfSqlFileFireMan#execute():38) - _
> >/_/_/_/
> >2008-03-27 21:13:39,703 [main] INFO (DfSqlFileRunnerBase#traceSql():
> >128) - CREATE TABLE departments ( id INTEGER UNSIGNED NOT NULL
> >AUTO_INCREMENT, code VARCHAR(255) NULL, name VARCHAR(255) NULL, PRIMARY
> >KEY(id) )
> >2008-03-27 21:13:39,718 [main] WARN (DfSqlFileRunnerExecute#execSQL():
> >36) - Failed to execute: CREATE TABLE departments ( id INTEGER UNSIGNED
> >NOT NULL AUTO_INCREMENT, code VARCHAR(255) NULL, name VARCHAR(255) NULL,
> >PRIMARY KEY(id) )
> >com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'departments'
> >already exists
> > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
> > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
> > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
> > at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
> > at com.mysql.jdbc.Connection.execSQL(Connection.java:3099)
> > at com.mysql.jdbc.Statement.execute(Statement.java:695)
> > at org.seasar.dbflute.helper.jdbc.sqlfile.DfSqlFileRunnerExecute.
> >execSQL(DfSqlFileRunnerExecute.java:29)
> > at org.seasar.dbflute.helper.jdbc.sqlfile.DfSqlFileRunnerBase.
> >runTransaction(DfSqlFileRunnerBase.java:75)
> > at org.seasar.dbflute.helper.jdbc.sqlfile.DfSqlFileFireMan.
> >execute(DfSqlFileFireMan.java:41)
> > at org.seasar.dbflute.task.DfReplaceSchemaTask.replaceSchema
> >(DfReplaceSchemaTask.java:166)
> > at org.seasar.dbflute.task.DfReplaceSchemaTask.doExecute
> >(DfReplaceSchemaTask.java:81)
> > at org.seasar.dbflute.task.bs.DfAbstractTask.execute
> >(DfAbstractTask.java:69)
> > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.
> >java:288)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> >Source)
> > at java.lang.reflect.Method.invoke(Unknown Source)
> > 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)
> >2008-03-27 21:13:39,718 [main] WARN (DfSqlFileRunnerExecute#execSQL():
> >37) -
> >
> >
> >
> >
> >
> >>ちなみにこちらMySQLのDBFluteExampleです。(SVN)
> >>https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-mysql-example
> >ありがとうございます。早速動かしてみます。
> >
> >
> >
> >>久保です。
> >>
> >>> ログを確認しました。SQL文は、
> >>>
> >>> CREATE TABLE departments ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
> >>> code
> >>> VARCHAR(255) NULL, name VARCHAR(255) NULL, PRIMARY KEY(id) )
> >>>
> >>> です。
> >>
> >>なるほど、了解です。
> >>通常、そのSQLが実行される前に「DROP TABLE departments」が
> >>実行されるはずなのですが、ログには登場していないでしょうか?
> >>(ログを一部抜粋して頂けるとありがたいです)
> >>
> >>
> >>ちなみにこちらMySQLのDBFluteExampleです。(SVN)
> >>https://www.seasar.org/svn/sandbox/dbflute/trunk/dbflute-mysql-example
> >>
> >>特にMySQLでReplaceSchemaで該当のエラーは
> >>出たことないのですが。。。
> >>
> >>2008/3/27 Atsushi Hashimoto <[E-MAIL ADDRESS DELETED]>:
> >>> 橋本です。
> >>> 久保さん、ご返信ありがとうございます。
> >>>
> >>>
> >>> ><A>
> >>> > /playsql/replace-schema.sqlにMySQL用の「テーブル3つ」の
> >>> > CREATE文を設定されているのでしょうか?
> >>> はい、そうです。テーブルに手を加えたときは/playsql/replace-schema.sqlを更
> >>> 新(または上書き)して/replace-schema.batを実行しています。
> >>>
> >>>
> >>> > <B>
> >>> > 「table xxxxxx already exist」
> >>> > は、直前のログを確認頂けますでしょうか?
> >>> > この例外が発生したSQLが出力されているかと思います。
> >>> ログを確認しました。SQL文は、
> >>>
> >>> CREATE TABLE departments ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
> >>> code
> >>> VARCHAR(255) NULL, name VARCHAR(255) NULL, PRIMARY KEY(id) )
> >>>
> >>> です。
> >>>
> >>>
> >>> 念のため、ログファイルと/playsql配下に置いているreplace-schema.sqlを添付
> >>> し
> >>> ます。
> >>>
> >>> お手数おかけしますがよろしくお願いします。
> >>>
> >>>
> >>>
> >>>
> >>> ----- Original Message -----
> >>> From: "kubo" <[E-MAIL ADDRESS DELETED]>
> >>> To: <[E-MAIL ADDRESS DELETED]>
> >>> Sent: Thursday, March 27, 2008 8:18 PM
> >>> Subject: [Seasar-user:13448] Re:[DBFlute] replace-schema螳溯。梧凾縺ョ 縲
> >>> 荊able
> >>> xxxxxx already exist縲・繧ィ繝ゥ繝シ縺ォ縺、縺・※
> >>>
> >>>
> >>> > 久保です。
> >>> >
> >>> > 橋本さん、こんにちは
> >>> >
> >>> > 取り急ぎ環境の確認をさせてください。
> >>> >
> >>> > <A>
> >>> > /playsql/replace-schema.sqlにMySQL用の「テーブル3つ」の
> >>> > CREATE文を設定されているのでしょうか?
> >>> >
> >>> > <B>
> >>> > 「table xxxxxx already exist」
> >>> > は、直前のログを確認頂けますでしょうか?
> >>> > この例外が発生したSQLが出力されているかと思います。
> >>> >
> >>> >
> >>> >
> >>> > #
> >>> > # ReplaceSchemaについて(参考)
> >>> > # http://d.hatena.ne.jp/jflute/20070823/1187797483
> >>> > #
> >>> >
> >>> > 2008/3/27 Atsushi Hashimoto <[E-MAIL ADDRESS DELETED]>:
> >>> >> お世話になっております。橋本です。
> >>> >> DBFluteにのreplace-schemaタスクについての質問です。
> >>> >>
> >>> >> 2度目以降のreplace-schemaの実行で「table xxxxxx already exist」のエ
> >>> ラーが発生します。
> >>> >> 以前、H2で動かしていた際にはエラーは出ていなかったのですが、今回、接
> >>> 続
> >>> 先データベースをMySQLに変更したところ発生するようになりました。
> >>> >>
> >>> >> 変更の際の設定に不備があるのかと思い、テーブル3つほどの簡単なデータ
> >>> ベースを作成し、
> >>> >>
> >>> >> 1. [新規]→[プロジェクト]→[chura-project] から S2Dao only でプロジ
> >>> ェ
> >>> クト作成
> >>> >>
> >>> >> 2. [新規]→[DBFlute client Directory]でDatabaseをmysqlに設定
> >>> >>
> >>> >> 上記を行い試してみましたがやはり2度目以降のreplace-schemaで「table
> >>> xxxxx
> >>> >> already exist」が発生します。
> >>> >> MySQL用の設定等が必要なのでしょうか?
> >>> >>
> >>> >> DBFlute:バージョン0.6.7
> >>> >> MySQL:バージョン5.0.51
> >>> >>
> >>> >> 以上、よろしくお願いいたします。
> >>> >>
> >>> >>
> >>> >> _______________________________________________
> >>> >> Seasar-user mailing list
> >>> >> [E-MAIL ADDRESS DELETED]
> >>> >> https://ml.seasar.org/mailman/listinfo/seasar-user
> >>> >>
> >>> > _______________________________________________
> >>> > Seasar-user mailing list
> >>> > [E-MAIL ADDRESS DELETED]
> >>> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >>> >
> >>> >
> >>>
> >>> _______________________________________________
> >>> Seasar-user mailing list
> >>> [E-MAIL ADDRESS DELETED]
> >>> https://ml.seasar.org/mailman/listinfo/seasar-user
> >>>
> >>>
> >>_______________________________________________
> >>Seasar-user mailing list
> >>[E-MAIL ADDRESS DELETED]
> >>https://ml.seasar.org/mailman/listinfo/seasar-user
> >_______________________________________________
> >Seasar-user mailing list
> >[E-MAIL ADDRESS DELETED]
> >https://ml.seasar.org/mailman/listinfo/seasar-user
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内