Python sqlite3在本地上成功,但在Github操作上失败

Python sqlite3在本地上成功,但在Github操作上失败,python,sqlite,github-actions,Python,Sqlite,Github Actions,相同的python版本、相同的sqlite3版本和相同的文件,但我无法传递Github操作 以下是我的github操作: 和我的python文件: 我可以在本地linux计算机上成功运行此文件: Projects/Blog - [master●] » python scripts/init_database.py -r ./posts --token xxx sqlite version 2.6.0 INSERT_USER_STATEMENT INSERT INTO User(bi

相同的python版本、相同的sqlite3版本和相同的文件,但我无法传递Github操作

以下是我的github操作:

和我的python文件:

我可以在本地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操作中失败:

 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.
sqlite 2.6.0版 插入用户语句 插入用户(个人简历、电子邮件、githubId、姓名) 值(?,,?,?) 关于冲突(名称)什么也不做 回溯(最近一次呼叫最后一次): 文件“scripts/init_database.py”,第110行,在 c、 执行(插入用户语句、作者信息) sqlite3.error:接近“ON”:语法错误 ##[错误]进程已完成,退出代码为1。
您可以找到完整的日志:

在我的YAML工作流中修复了类似的SQLite问题,替换了

runs-on: ubuntu-latest 


ubuntu最新版本使用Ubuntu18.04,而SQLite版本似乎很旧,存在问题。

解决类似SQLite问题的方法是在我的YAML工作流中,替换

runs-on: ubuntu-latest 


ubuntu最新版本使用的是Ubuntu18.04,而SQLite版本似乎很旧,存在问题。

尝试打印或以其他方式输出SQL语句以比较它们。如果您自己没有看到问题,您也可以在问题中将其显示为格式正确的文本。在代码的第13行中有
print(“sqlite3.sqlite\u version:,sqlite3.sqlite\u version)
,但我没有看到匹配的输出。对不起,我终于弄明白,
sqlite version
不是sqlite二进制版本,Github Action的操作系统ubuntu最新版本实际上是ubuntu 18.04,所以它的sqlite二进制版本是
3.22
,比我本地机器的版本低。。。当我更新到ubuntu 20.04时,这个问题就解决了。谢谢!尝试打印或以其他方式输出SQL语句以进行比较。如果您自己没有看到问题,您也可以在问题中将其显示为格式正确的文本。在代码的第13行中有
print(“sqlite3.sqlite\u version:,sqlite3.sqlite\u version)
,但我没有看到匹配的输出。对不起,我终于弄明白,
sqlite version
不是sqlite二进制版本,Github Action的操作系统ubuntu最新版本实际上是ubuntu 18.04,所以它的sqlite二进制版本是
3.22
,比我本地机器的版本低。。。当我更新到ubuntu 20.04时,这个问题就解决了。谢谢!