ご無沙汰しています。株式会社エキサイトの中尾です。
sql serverの本番のデータベースの定義をローカル環境のdockerに再現する際に罠にかかったのでその内容を記載します。
なお、復旧にはflywayを使用します。
やりたいことは以下です。
- ローカル環境にsql serverを立てる
- 本番環境のTBL定義を読み込ませる
です。
まず、TBL定義を持ってきます。MSSMSを使用してバックアップスクリプトから取得します。
ここまではうまくいきます。
ローカルに持ってきてflywayを実行するとエラーになります。
以下の対応をすると、flywayが実行されました。
sql serverはdatabaseの実態をDATAフォルダにF:\SQL\DATA\XXXXX.mdf、LOGフォルダにF:\SQL\DATA\XXXXX.ldfに保存します。mac環境に存在しないディレクトリに向いているのでコメントアウト。
PARTNER TIMEOUTをコメントアウト。
ユーザのロールを作成する処理をコメントアウト。
mysqldumpみたいに一回でできたら嬉しいですが、難しいようです。