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'
~~~
こんな感じでエラーが出ても無視して実行してくれちゃいます
コメント