无法在python中通过sqlalchemy从PostgreSQL创建表

时间:2019-10-22 09:52:09

标签: 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()

1 个答案:

答案 0 :(得分:0)

更新

您的main()永远不会执行,因为您的if语句永远不会被满足。尝试更改为此:

if __name__ == "__main__":
    main()

您的引号还使用DATABASE_URL作为字符串而不是变量,请将此行更改为以下内容:

engine = create_engine(os.getenv(DATABASE_URL))

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

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)