相同的python版本,相同的sqlite3版本和相同的文件,但是我无法通过Github Action。
这是我的github动作: https://github.com/CloudAurora/Blog/blob/master/.github/workflows/main.yml
和我的python文件:https://github.com/CloudAurora/Blog/blob/master/scripts/init_database.py
我可以在本地linux计算机上成功运行此文件:
Projects/Blog - [master●] » python scripts/init_database.py -r ./posts --token xxx
sqlite version 2.6.0
INSERT_USER_STATEMENT
INSERT INTO User(bio, email, githubId, name)
VALUES(?,?,?,?)
ON CONFLICT(name) DO NOTHING
INSERT_USER_STATEMENT
INSERT INTO User(bio, email, githubId, name)
VALUES(?,?,?,?)
ON CONFLICT(name) DO NOTHING
Create db file in: ./prisma/dev.db, and env is set
但是,当我将其推送到github时,它将在Github Action中失败:
sqlite version 2.6.0
INSERT_USER_STATEMENT
INSERT INTO User(bio, email, githubId, name)
VALUES(?,?,?,?)
ON CONFLICT(name) DO NOTHING
Traceback (most recent call last):
File "scripts/init_database.py", line 110, in <module>
c.execute(INSERT_USER_STATEMENT, author_info)
sqlite3.OperationalError: near "ON": syntax error
##[error]Process completed with exit code 1.
您可以找到完整的日志:https://github.com/CloudAurora/Blog/runs/899163805?check_suite_focus=true
答案 0 :(得分:1)
为我解决类似 SQLite 问题的是在我的 YAML 工作流程中,替换了
runs-on: ubuntu-latest
与
runs-on: ubuntu-20.04
ubuntu-latest 使用 Ubuntu 18.04 并且 SQLite 版本似乎很旧并且有问题。