我有一堆 Python 脚本,我在管道中使用它们来读取文件,并转换数据以创建和填充 sqlite3 数据库。
我使用makefile来做到这一点;由于我的一些输入文件相当大,即 5GB,因此需要相当长的时间来处理,我不希望 makefile 在我只编辑一个文件时重新运行整个管道。
然而,因为它们都编辑同一个文件,即数据库文件,它们实际上都是假目标。有没有办法让它只重新运行已经编辑过文件的目标?
这是我正在使用的生成文件:
.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