エラーを無視してインポートするMySQLのコマンド(–force)

2014年5月24日

migrationとか、おしゃれな仕組みがないレガシープロジェクトの場合SQLファイルを作ってDBの変更履歴を共有したりするわけで
git blameを使って直前にコミットされた差分だけ実行したりしてましたが1発でいけることを今更知りました

-f, –force Continue even if we get an SQL error.

~~~
mysql -uroot -proot -f dbname < ddl.sql ~~~ mysqlの-fコマンドはエラーを無視して実行してくれます ~~~ ERROR 1060 (42S21) at line 42: Duplicate column name 'sub_title7' ERROR 1060 (42S21) at line 43: Duplicate column name 'sub_comment7' ERROR 1060 (42S21) at line 44: Duplicate column name 'sub_image7' ERROR 1060 (42S21) at line 45: Duplicate column name 'sub_large_image7' ERROR 1060 (42S21) at line 46: Duplicate column name 'sub_title8' ERROR 1060 (42S21) at line 47: Duplicate column name 'sub_comment8' ERROR 1060 (42S21) at line 48: Duplicate column name 'sub_image8' ERROR 1060 (42S21) at line 49: Duplicate column name 'sub_large_image8' ERROR 1060 (42S21) at line 50: Duplicate column name 'sub_title9' ERROR 1060 (42S21) at line 51: Duplicate column name 'sub_comment9' ERROR 1060 (42S21) at line 52: Duplicate column name 'sub_image9' ERROR 1060 (42S21) at line 53: Duplicate column name 'sub_large_image9' ERROR 1060 (42S21) at line 54: Duplicate column name 'sub_title10' ERROR 1060 (42S21) at line 55: Duplicate column name 'sub_comment10' ERROR 1060 (42S21) at line 56: Duplicate column name 'sub_image10' ERROR 1060 (42S21) at line 57: Duplicate column name 'sub_large_image10' ~~~ こんな感じでエラーが出ても無視して実行してくれちゃいます