我尝试通过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()
答案 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)