python-3.x - ID 列上的 Flask-SQLAlchemy 无效标识符
问题描述
我正在尝试使用 Python 终端使用以下命令添加用户:
from app import db
from app.models import User, Post
u = User(username='Jordan',email='jtest@test.net')
db.session.add(u)
db.session.commit()
下面是我的模型:
class User(db.Model):
id = db.Column(db.Integer, db.Sequence('id_seq'), primary_key=True)
username = db.Column(db.String(64), unique=True)
email = db.Column(db.String(120), unique=True)
password = db.Column(db.String(128))
posts = db.relationship('Post', backref='author',lazy='dynamic')
def __repr__(self):
return 'User {}'.format(self.username)
初始化脚本:
from flask import Flask
from config import Config, SnowflakeImpl
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
# Creates an instance of the flask application
app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
from app import routes, models
sqlalchemy.exc.StatementError: (sqlalchemy.exc.ProgrammingError) (snowflake.connector.errors.ProgrammingError) 000904 (42000): SQL 编译错误:错误行 1 在位置 7 无效标识符 'ID_SEQ.NEXTVAL' [SQL: 'INSERT INTO用户(id,用户名,电子邮件,密码)值(%(id)s,%(用户名)s,%(email)s,%(password_hash)s)'] [参数:[{'email':'jtest@ test.net', 'username': 'Jordan', 'password': None}]] (此错误的背景:http ://sqlalche.me/e/f405 )
这是我收到的错误,从我在网上阅读的内容来看,这应该可以工作,但它会反馈一个“无效标识符”错误。
解决方案
找到了解决方案,因为我使用的是烧瓶迁移包,所以我进入了版本文件夹并在我的用户表的迁移脚本中观察到我的“序列”功能没有被包括在内。它导致我的 ID 出现 Invalid Identifier 错误。
def upgrade():
op.create_table('user',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('username', sa.String(length=64), nullable=True),
sa.Column('email', sa.String(length=120), nullable=True),
sa.Column('password_hash', sa.String(length=128), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('email'),
sa.UniqueConstraint('username')
)
推荐阅读
- highcharts - 我在哪里可以获得 HighStock 旧版本?
- xml - 如何使用 Visual Basic 读取 xml 标签的 id
- python - 高级 XML 语言注入
- android - 我正在使用 anjlab 库进行应用内计费,但“bp.loadOwnedPurchasesFromGoogle()”总是返回 false
- javascript - AudioNode.disconnect() 后跟 .connect() 在 Safari 中不起作用
- c# - 与 asp.net 核心的集成测试(没有视图的控制器测试)
- crystal-reports - 当我从应用程序打印到 pdf 时,Crystal Reports 正在翻转图片
- reactjs - Xtermjs 4.0.0,在我的应用程序中不起作用
- c++ - 为 C++ 类型推断“物化”已知类型的对象
- html - 尝试更改占位符颜色时出错