SQLAlchemy 脚本在 sqlite3 上运行良好,但在与 MYSQL 一起使用时会引发错误
SQLAlchemy script works fine with sqlite3 but raises errors when used with MYSQL
SQLAlchemy 脚本在 sqlite3 上运行良好,但当连接到 MYSQL 数据库时,它会给出不同的错误,例如:
- AttributeError: '_NoResultMetaData' 对象没有属性 '_indexes_for_keys'
- sqlalchemy.exc.NoSuchColumnError:无法在行中找到第 'filters.id'
列的列
- KeyError: Column('id', Integer(), table=, primary_key=True, nullable=False)
这些函数在 运行 单独使用时工作正常,但当与 flask 一起使用时,它们会出现上述错误。
我的数据库模型:
from sqlalchemy import Column, Integer, String, MetaData, Boolean, DateTime
from sqlalchemy.ext.declarative import declarative_base
import datetime
Base = declarative_base()
class ProfileData(Base):
__tablename__ = 'profile_data'
id = Column(Integer, primary_key=True)
user_id = Column("user_id", Integer)
user_profile_link = Column(String(100))
username = Column(String(100))
name = Column(String(100))
is_verified = Column(Boolean)
website = Column(String(100))
bio = Column(String(1000))
location = Column(String(100))
created_at = Column(DateTime)
followers = Column(Integer)
following = Column(Integer)
_datetime = Column(DateTime, default=datetime.datetime.utcnow)
提前致谢。
我建议这样做,我通常如何设置
来自 SQLAlchemy 的第一个初始化数据库对象
db = SQLAlchemy()
然后使用 db.model
声明模型
class ProfileData(db.Model):
__tablename__ = 'profile_data'
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column("user_id", db.Integer)
user_profile_link = db.Column(db.String(100))
username = db.Column(db.String(100))
希望这能解决您的问题
SQLAlchemy 脚本在 sqlite3 上运行良好,但当连接到 MYSQL 数据库时,它会给出不同的错误,例如:
- AttributeError: '_NoResultMetaData' 对象没有属性 '_indexes_for_keys'
- sqlalchemy.exc.NoSuchColumnError:无法在行中找到第 'filters.id' 列的列
- KeyError: Column('id', Integer(), table=, primary_key=True, nullable=False)
这些函数在 运行 单独使用时工作正常,但当与 flask 一起使用时,它们会出现上述错误。
我的数据库模型:
from sqlalchemy import Column, Integer, String, MetaData, Boolean, DateTime
from sqlalchemy.ext.declarative import declarative_base
import datetime
Base = declarative_base()
class ProfileData(Base):
__tablename__ = 'profile_data'
id = Column(Integer, primary_key=True)
user_id = Column("user_id", Integer)
user_profile_link = Column(String(100))
username = Column(String(100))
name = Column(String(100))
is_verified = Column(Boolean)
website = Column(String(100))
bio = Column(String(1000))
location = Column(String(100))
created_at = Column(DateTime)
followers = Column(Integer)
following = Column(Integer)
_datetime = Column(DateTime, default=datetime.datetime.utcnow)
提前致谢。
我建议这样做,我通常如何设置
来自 SQLAlchemy 的第一个初始化数据库对象
db = SQLAlchemy()
然后使用 db.model
声明模型class ProfileData(db.Model):
__tablename__ = 'profile_data'
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column("user_id", db.Integer)
user_profile_link = db.Column(db.String(100))
username = db.Column(db.String(100))
希望这能解决您的问题