无法在python中从postgresql到sqlalchemy创建表



我试图通过python中的sqlalchemy在postgresql中创建一个表。编码执行时不会返回任何错误,但无法创建表。下面是代码,我真的很感激你的帮助。非常感谢。

import os
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
DATABASE_URL = "postgres://wzmsxnmxhimb....."
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
def main():
db.execute("CREATE TABLE books (id SERIAL PRIMARY KEY,isbn INTEGER NOT NULL,title VARCHAR NOT NULL,author VARCHAR NOT NULL,year INTEGER NOT NULL)")
db.commit
print ("done")
if __name__ == "__main__":
main()

更新

您的main()从未被执行,因为您的if语句从未被满足。尝试更改为:

if __name__ == "__main__":
main()

如果您的报价使用DATABASE_URL作为字符串,而不是变量,请将此行更改为以下内容:

engine = create_engine(os.getenv(DATABASE_URL))

如果问题仍然存在,请在main()中添加一个try/except以查看结果:

def main():
try:
db.execute("CREATE TABLE books (id SERIAL PRIMARY KEY,isbn INTEGER NOT NULL,title VARCHAR NOT NULL,author VARCHAR NOT NULL,year INTEGER NOT NULL)")
db.commit
print ("done")
except Exception as exc:
print(exc)

最新更新