如何使用 SQLAlchemy 在 PostgreSQL 中创建 table?
How do I create a table in PostgreSQL with SQLAlchemy?
我试图在 "app" 数据库中创建一个 table,但出现此错误:
app=# CREATE TABLE users;
ERROR: syntax error at or near ";"
LINE 1: LINE 1: CREATE TABLE users;
^
这些列在 models.py
中定义,这就是我不在此处创建它们的原因。
不要在 PostgreSQL 中创建 table,SQLAlchemy 将为您创建 table(和列)。您需要做的就是创建您已完成的 数据库 。使用 Flask-SQLAlchemy 创建 tables:
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
表达式。您需要为 table.
指定零个或多个列
CREATE TABLE my_table ();
在我的例子中忘记导入我的模型class和代码
运行 没有任何错误:)。
如果您在交互模式下调用 create_all()
,请确保您导入特定模型 class。
注意:每次更改模型 class 重新启动 ipython。
我试图在 "app" 数据库中创建一个 table,但出现此错误:
app=# CREATE TABLE users;
ERROR: syntax error at or near ";"
LINE 1: LINE 1: CREATE TABLE users;
^
这些列在 models.py
中定义,这就是我不在此处创建它们的原因。
不要在 PostgreSQL 中创建 table,SQLAlchemy 将为您创建 table(和列)。您需要做的就是创建您已完成的 数据库 。使用 Flask-SQLAlchemy 创建 tables:
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
表达式。您需要为 table.
CREATE TABLE my_table ();
在我的例子中忘记导入我的模型class和代码
运行 没有任何错误:)。
如果您在交互模式下调用 create_all()
,请确保您导入特定模型 class。
注意:每次更改模型 class 重新启动 ipython。