質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.61%

MyBatis Migrationsのbootstrap.sqlを実行するとエラーが発生する

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 705

score 9

■Github
https://github.com/mybatis/migrations

■ドキュメント(bootstrap部分)
http://mybatis.org/migrations/bootstrap.html

■実行環境
OS:MacOS 10.13.6(High Sierra)
DB:MySQL 5.7.17

MyBatis MigrationsというMySQLのマイグレーションをバージョン管理出来るツールを導入しようとしているのですが、既存プロジェクトのDBに対して管理したい場合は、まずscripts/bootstrap.sqlに現在のDBを構築するためのDDLを入れて migrate bootstrap を実行すればそれが初期バージョンとして管理出来るとドキュメントに書いてあるので、現在使用しているDDL(以下参照)をそのまま使ったら以下のようにSyntaxErrorが出てしまいます。

SET SESSION FOREIGN_KEY_CHECKS=0;
CREATE TABLE hogehoge
(
        hoge VARCHAR(20) NOT NULL COMMENT 'UNIQUE',
        PRIMARY KEY (hoge)
);
CREATE (以下既存のTBLのCREATE文、ALTER文等)
Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE hogehoge
(
        hoge VARCHAR(20) NOT NULL COMMENT 'UNIQUE',
    ' at line 37

1行目の @SET SESSION FOREIGN_KEY_CHECKS=0; をコメントアウトすると、2個目のCREATE文のあたりでエラーが出るので、改行が悪さしているのかと思い1行にしてみたりしましたが同じエラーが出ます。

また、1行だけなら出来そうなのでhogehogeテーブルをCREATEするだけのSQLを試しに実行すると、 Table 'hogehoge' already exists と出てしまいます。こちら本番に適用する場合は一度全てのテーブルを消してから再構築する必要があるという事なのでしょうか? そうであればこのツールを使うつもりはありませんのでそれが分かるとありがたいです。

ネットにも全く情報が無く、詳しい方や他の対応方法がありましたらご教授願います。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • dameo

    2020/01/28 06:37

    まず、どこよりも正確なドキュメントがあるので、それを元に問題点を指摘してください。
    https://dev.mysql.com/doc/refman/5.7/en/set-variable.html
    https://dev.mysql.com/doc/refman/5.7/en/create-table.html

    また、Table 'hogehoge' already existsは普通に訳してください。

    現象は何をしたときにどうなったということを具体的かつ詳細かつ正確に説明してください。
    ケースが複数あるならあるだけ、「全て」省略することなく「正確に」記載してください。
    1つでも欠けている情報があれば、あなたの質問には回答が付かないと思ってください。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る