パイプラインでファイルを読み取り、データを変換して sqlite3 データベースを作成および設定するために使用する一連の Python スクリプトがあります。
これを行うにはメイクファイルを使用します。私の入力ファイルのいくつかはかなり大きく、例えば 5GB であり、そのため処理にかなりの時間がかかるため、1 つのファイルだけを編集するときに makefile がパイプライン全体を再実行することは望ましくありません。
しかし、それらはすべて同じファイル、つまりデータベース ファイルを編集するため、事実上すべて偽のターゲットです。ファイルが編集されたターゲットのみを make が再実行するようにする方法はありますか?
私が使用しているメイクファイルは次のとおりです。
.PHONY: all
all: blogs.db
blogs.db: create users posts likes blogs blog_likes
.PHONY: create
create: create.py
$(PYTHON) create.py
.PHONY: users
users: users.py
$(PYTHON) users.py
.PHONY: posts
posts: posts.py
$(PYTHON) posts.py
.PHONY: likes
likes: likes.py
$(PYTHON) likes.py
.PHONY: blogs
blogs: blogs.py
$(PYTHON) blogs.py
.PHONY: blog_likes
blog_likes: blog_likes.py
$(PYTHON) blog_likes.py