2011-01-24 8 views
1

dbmaintainを使用して、WebサービスプロジェクトでSQLテーブルのメンテナンスを自動化します。私は、mysqlのバージョン5.5.8へのアップグレードで、 'create_table'コマンドで 'engine'が必要な 'type'の使用のために既存のスクリプトを壊した構文変更を引き起こしたという難しい問題に遭遇しました。mysql構文の変更を処理するdbmaintainスクリプトを変更する必要があります

通常、dbmaintainを使用しないと、 'engine'構文が古いバージョンのmysqlで動作するため、これを修正するのはかなり簡単です。しかし、dbmaintainの世界では、増分スクリプトの変更は禁止されています。 dbmaintainの制約内でこの問題を処理する、クリーンで許容可能な方法はありますか?私は、既存のスクリプトを削除し、その中に正しい構文があることを考えています。スクリプトはフォルダ内の他のスクリプトと多かれ少なかれ独立しているので、どのような順序で実行するかは関係ありません。

答えて

0

このスクリプトを手動で微調整し、DbMaintainがそれを無視するようにするには、更新されたハッシュでDB_MAINTAINテーブルを更新する必要があります。これを行う最も簡単な方法は、新しいハッシュを取り、実動CHECKSUM列を更新することです。また、FILE_LAST_MODIFIED_AT列で再生する必要があります。

"最初から"データベースで実行されているDB_MAINTAINテーブルから、更新されたチェックサムを取得できます。