[英]Can't create table from postgresql through sqlalchemy in python
我尝试通过 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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.