【问题标题】:How do I create a table in PostgreSQL with SQLAlchemy?如何使用 SQLAlchemy 在 PostgreSQL 中创建表?
【发布时间】:2015-05-04 13:31:42
【问题描述】:
我试图在“app”数据库中创建一个表,但得到了这个错误:
app=# CREATE TABLE users;
ERROR: syntax error at or near ";"
LINE 1: LINE 1: CREATE TABLE users;
^
这些列在models.py 中定义,这就是我不在此处创建它们的原因。
【问题讨论】:
标签:
python
postgresql
flask
sqlalchemy
【解决方案1】:
不要在 PostgreSQL 中创建表,SQLAlchemy 会为你创建表(和列)。您需要做的就是创建您已经完成的数据库。使用 Flask-SQLAlchemy 创建表:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False, unique=True)
with app.app_context():
db.create_all()
要解决该错误(尽管如上所述,您不应该这样做),这是因为这不是一个完整的CREATE TABLE 表达式。您需要为表格指定零个或多个列。
CREATE TABLE my_table ();
【解决方案2】:
在我的情况下忘记导入我的模型类和代码
运行没有任何错误:)。
如果您在交互模式下调用create_all(),请确保您导入特定的模型类。
注意:每次对 Model 类进行更改时,请重新启动 ipython。