在 SqlAlchemy 中创建 table 后立即插入数据
Inserting data right after create table in SqlAlchemy
我正在使用 SqlAlchemy 创建我的 tables 并有一个名为 UserTypes
的 table
编号 |类型
0 |所有者
1 |客户
在我的用户 table 中,我将用户类型 ID 作为外键。每当我想创建一个用户时,我想分配用户类型默认值 0。但是我的用户类型 table 是空的,所以我想在它用 SqlAlchemy 创建后立即填充这个 table,并进一步锁定插入。问题是我可以插入
这是我的 User 和 UserType 模态。
class User(Model):
id = Column(db.Integer, primary_key=True)
email = Column(db.String(64), unique=True, index=True)
username = Column(db.String(15), unique=True, index=True)
name = Column(db.String(64))
password_hash = Column(db.String(128))
usertype_id = Column(db.Integer, db.ForeignKey('user_types.id'), default=DEFAULT_USERTYPE)
和
class UserType(db.Model):
__tablename__ = 'user_types'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True, unique=True)
users = db.relationship('User', backref='user_types', lazy='dynamic')
您可以在 app/__init__.pay 中添加用户类型。您必须检查 table 保存在哪个键下,我不确定它是 'usertype' 还是 'user_types'。
if 'user_types' not in db.metadata.tables.keys():
db.create_all()
t1 = UserType()
t1.id = 0
t1.name = 'Owner'
db.session.add(t1)
t2 = UserType()
t2.id = 1
t2.name = 'Customer'
db.session.add(t2)
db.session.commit()
我正在使用 SqlAlchemy 创建我的 tables 并有一个名为 UserTypes
的 table编号 |类型
0 |所有者
1 |客户
在我的用户 table 中,我将用户类型 ID 作为外键。每当我想创建一个用户时,我想分配用户类型默认值 0。但是我的用户类型 table 是空的,所以我想在它用 SqlAlchemy 创建后立即填充这个 table,并进一步锁定插入。问题是我可以插入
这是我的 User 和 UserType 模态。
class User(Model):
id = Column(db.Integer, primary_key=True)
email = Column(db.String(64), unique=True, index=True)
username = Column(db.String(15), unique=True, index=True)
name = Column(db.String(64))
password_hash = Column(db.String(128))
usertype_id = Column(db.Integer, db.ForeignKey('user_types.id'), default=DEFAULT_USERTYPE)
和
class UserType(db.Model):
__tablename__ = 'user_types'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True, unique=True)
users = db.relationship('User', backref='user_types', lazy='dynamic')
您可以在 app/__init__.pay 中添加用户类型。您必须检查 table 保存在哪个键下,我不确定它是 'usertype' 还是 'user_types'。
if 'user_types' not in db.metadata.tables.keys():
db.create_all()
t1 = UserType()
t1.id = 0
t1.name = 'Owner'
db.session.add(t1)
t2 = UserType()
t2.id = 1
t2.name = 'Customer'
db.session.add(t2)
db.session.commit()