繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM