私は自分のラップトップで開発を行い、次にgitを使用してサーバーにプッシュすることで変更をデプロイすることにより、WordPressサイトで作業しています。これはファイルに最適です。データベースへのコンテンツの変更についても同じことをしたいと思います。
問題を解決するための最初の反復では、gitフックを使用してmysqldump
、コミット前を使用してデータベースをダンプし、チェックアウト後にダンプを復元しました。これは機能しますが、毎回データベース全体を削除して再作成します。WordPressは、販売された製品の記録など、保持したいデータベースにも自動的に変更を加えるため、これは問題です。したがって、チェックアウトのたびにすべてを削除して復元したくありません。
git diff HEAD^
より良い解決策は、コミット中にデータベースをダンプし続け、チェックアウトには、の出力を読み取り、にフィードされたINSERTおよびDELETESQLステートメントに変換する新しいツールを使用することだと思いますmysql
。そうすれば、他の人(WordPressなど)によって行われた変更を保持しながら、データベースに私の変更を段階的にパッチすることができます。例:
git diff:
(83,NULL,550,'TI-99/4A','',0,0,0,0,'',0,0,0),
-(85,NULL,2000,'Banana Jr. 6000','',0,0,0,0,'',0,0,0),
+(85,NULL,2000,'Banana Jr. 6000 (now with tint control!)','',0,0,0,0,'',0,0,0),
(88,NULL,150,'Symbolics 3645','',0,0,0,0,'',0,0,0),
SQLに変換:
DELETE FROM `wp_yak_product` WHERE `post_id`='85';
INSERT INTO `wp_yak_product` VALUES (85,NULL,2000,'Banana Jr. 6000 (now with tint control!)','',0,0,0,0,'',0,0,0);
私は周りを検索しましたが、このようなものは見つかりませんでした。自分で書くことを考えています。
このようなものはありますか?これは良い考えですか、それとも悪い考えですか?